代码之家  ›  专栏  ›  技术社区  ›  Nick Udell

家庭格式问题

  •  2
  • Nick Udell  · 技术社区  · 16 年前

    我正在尝试设置字体系列组合框的选定值,该组合框已填充以下XAML:

    <ComboBox ItemsSource="{x:Static Fonts.SystemFontFamilies}" Name="cboFont">
        <ComboBox.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel MinWidth="256" />
            </ItemsPanelTemplate>
        </ComboBox.ItemsPanel>
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Margin="2" Text="{Binding}" FontFamily="{Binding}"/>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
    

    2 回复  |  直到 16 年前
        1
  •  7
  •   Alex Humphrey    16 年前

    希望我正确地理解了你的问题。

    FontFamily支持构造函数

    FontFamily(String familyName);
    

    new FontFamily("Arial") 从字符串转换为FontFamily。

    你可以把它放在一个实现 IValueConverter 在FontFamily和String之间转换。

    然后只需设置FontFamily绑定以使用转换器。

        2
  •  1
  •   Torsten    16 年前

    亚历克斯的回答听起来很好。

    您也可以尝试DependencyProperty:

       public FontFamily FontFamily
            {
                get { return (FontFamily)GetValue(FontFamilyProperty); }
                set { SetValue(FontFamilyProperty, value); }
            }
    
     public static DependencyProperty FontFamilyProperty =
                DependencyProperty.Register(
                "FontFamily",
                typeof(FontFamily),
                typeof(YourClassVM),
                 new FrameworkPropertyMetadata(SystemFonts.MessageFontFamily
            , FrameworkPropertyMetadataOptions.AffectsRender |
            FrameworkPropertyMetadataOptions.AffectsMeasure)
                );
    

    选择编辑项 你的 以及 文本和字体系列 你的 控件