【问题标题】:How to set FontFamily in code如何在代码中设置 FontFamily
【发布时间】:2011-07-13 16:29:19
【问题描述】:

我正在创建一个需要使用自定义字体的 WPF 应用程序。 A 创建了一个字体资源库,如此处所述http://msdn.microsoft.com/en-us/library/ms753303.aspx。一个示例展示了如何在 XAML 中设置字体系列:

<Run FontFamily="/FontLibrary;Component/#Kootenay" FontSize="36">
  ABCDEFGHIJKLMNOPQRSTUVWXYZ
</Run>

如何在代码中设置字体系列?

【问题讨论】:

    标签: wpf


    【解决方案1】:

    为您的运行分配一个名称,然后使用 URI constructor 构造 FontFamily:

    Xaml:

    <Run x:Name="MyTextRun">ABC</Run>
    

    后面的代码:

    MyTextRun.FontFamily = new FontFamily(new Uri("/FontLibrary;Component/#Kootenay", UriKind.RelativeOrAbsolute), "Kootenay");
    MyTextRun.FontSize = 36;
    

    【讨论】:

    • 没有接受 2 个字符串的 FontFamily 构造函数。
    • 它不起作用。我得到未处理的异常:System.ArgumentException:URI 必须是绝对的。在我更改为 UriKind.Absolute 后,我得到 Unhandled Exception: System.UriFormatException: Invalid URI: The format of the URI could not be determined.
    • 尝试切换到完整包:URI格式:msdn.microsoft.com/en-us/library/aa970069.aspx
    • 是的,就是这样。正确的 uri 是新的 Uri ("pack://application:,,,/FontLibrary;Component/#Kootenay", UriKind.Absolute)
    【解决方案2】:

    首先,给你的元素一个名字。

    <Run x:Name="someNameHere">ABCDEFGHIJKLMNOPQRSTUVWXYZ</Run>
    

    现在在后面的代码中你可以像下面的例子一样设置它:

    someNameHere.FontFamily = new FontFamily("Monospace");
    

    someNameHere.FontFamily = new FontFamily("Comic Sans MS");
    

    someNameHere.FontFamily = new FontFamily("Times New Roman");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 2011-11-23
      相关资源
      最近更新 更多