Ich habe eine RibbonComboBox
, die verwendet wird, um Schriftgrößen festzulegen. Es hat eine RibbonGallery
, die die verschiedenen Schriftgrößen auflistet, in der entsprechenden FontSize
angezeigt:WPF :: Styling der RibbonComboBox anders als die RibbonGallery
<r:RibbonComboBox DataContext="{x:Static vm:RibbonDataModel.FontSizeComboBoxData}"
SelectionBoxWidth="30">
<r:RibbonGallery MaxColumnCount="1"
Command="{Binding Command}"
CommandParameter="{Binding SelectedItem}">
<r:RibbonGallery.GalleryItemTemplate>
<DataTemplate>
<Grid>
<TextBlock Text="{Binding}"
FontSize="{Binding}" />
</Grid>
</DataTemplate>
</r:RibbonGallery.GalleryItemTemplate>
</r:RibbonGallery>
</r:RibbonComboBox>
EDIT Hier ist meine Viewmodel:
public static RibbonDataModel
{
public static GalleryData<object> FontSizeComboBoxData
{
get
{
lock (LockObject)
{
const string key = "Font Size";
if (!DataCollection.ContainsKey(key))
{
var value = new GalleryData<object>
{
Command = HtmlDocumentCommands.ChangeFontSize,
Label = "Change Font Size",
ToolTipDescription = "Set the font to a specific size.",
ToolTipTitle = "Change Font Size",
};
var fontSizes = new GalleryCategoryData<object>();
var i = 9.0;
while (i <= 30)
{
fontSizes.GalleryItemDataCollection.Add(i);
i += 0.75;
}
value.CategoryDataCollection.Add(fontSizes);
DataCollection[key] = value;
}
return DataCollection[key] as GalleryData<object>;
}
}
}
}
Alles funktioniert wie erwartet, aber nachdem ich wählen Sie einen Artikel aus der Galerie, es erscheint in der RibbonComboBox
mit der gleichen großen (oder winzigen) FontSize
wie es in der Galerie verwendet.
Wie kann ich die FontSize
des ausgewählten Elements auf den Standard "zurücksetzen", wenn es in der RibbonComboBox
angezeigt wird?
Können Sie bitte Ihren ViewModel-Code posten? –
Veröffentlicht wie angefordert. –