如何在WPF中的代码隐藏中更改FontStyle
。我试过这个:在WPF中更改代码中的FontStyle
listBoxItem.FontStyle = new FontStyle("Italic");
我得到错误,有什么想法吗?
如何在WPF中的代码隐藏中更改FontStyle
。我试过这个:在WPF中更改代码中的FontStyle
listBoxItem.FontStyle = new FontStyle("Italic");
我得到错误,有什么想法吗?
这是FontStyles.Italic
...使用FontStyles
枚举设定值FontStyle
listBoxItem.FontStyle = FontStyles.Italic;
试试这个FontStyles.Italic
listBoxItem.FontStyle = FontStyles.Italic;
在这种情况下FontStyle
是结构MSDN
:
定义一个st表示正常,倾斜或倾斜的字体样式的结构。
它可以ILSpy
查看:
[TypeConverter(typeof(FontStyleConverter)), Localizability(LocalizationCategory.None)]
public struct FontStyle : IFormattable
{
private int _style;
internal FontStyle(int style)
{
this._style = style;
}
在这里我们看到,字段类型Int
的_style
。要设置Int
类型的值,它是从静态类FontStyles
采取:
public static class FontStyles
{
public static FontStyle Normal
{
get
{
return new FontStyle(0);
}
}
public static FontStyle Oblique
{
get
{
return new FontStyle(1);
}
}
public static FontStyle Italic
{
get
{
return new FontStyle(2);
}
}
internal static bool FontStyleStringToKnownStyle(string s, IFormatProvider provider, ref FontStyle fontStyle)
{
if (s.Equals("Normal", StringComparison.OrdinalIgnoreCase))
{
fontStyle = FontStyles.Normal;
return true;
}
if (s.Equals("Italic", StringComparison.OrdinalIgnoreCase))
{
fontStyle = FontStyles.Italic;
return true;
}
if (s.Equals("Oblique", StringComparison.OrdinalIgnoreCase))
{
fontStyle = FontStyles.Oblique;
return true;
}
return false;
}
}
所以事实证明,要设置FontStyle
需要参考一个静态类FontStyles
:
SomeControl.FontStyle = FontStyles.Italic;
可以有有点混乱,在实际上,有两种FontStyle
(无S)枚举:
namespace MS.Internal.Text.TextInterface
internal enum FontStyle
{
Italic = 2,
Oblique = 1,
Normal = 0
}
此枚举是内部,我想使用的系统内部结合的公共结构FontStyles
。
namespace System.Drawing
[Flags]
public enum FontStyle
{
Regular = 0,
Bold = 1,
Italic = 2,
Underline = 4,
Strikeout = 8
}
这标志枚举公共和System.Drawing
像这样使用:
SomeControl.Font = new Font(FontFamily.GenericSansSerif,
12.0F, FontStyle.Bold | FontStyle.Italic);
它必须是FontStyle's'.Italic ;. –
@AnatoliyNikolaev谢谢..更新 –
我尝试喜欢它,但我得到了erorr,不能解决符号斜体,任何想法? –