Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用AeroGlass时,在WPF中键入ClearType_C#_.net_Wpf_Aero - Fatal编程技术网

C# 使用AeroGlass时,在WPF中键入ClearType

C# 使用AeroGlass时,在WPF中键入ClearType,c#,.net,wpf,aero,C#,.net,Wpf,Aero,每当我在WPF应用程序中使用AeroGlass时,ClearType的行为就变得非常奇怪。我发现以下行将我的字体渲染设置回灰度: mainWindowSrc.CompositionTarget.BackgroundColor = Colors.Transparent; 要使AeroGlass恢复工作,我必须为每个包含文本的控件设置这些.NET 4.0属性: RenderOptions.cleartypeint=“Enabled”TextOptions.TextFormattingMode=“D

每当我在WPF应用程序中使用AeroGlass时,ClearType的行为就变得非常奇怪。我发现以下行将我的字体渲染设置回灰度:

mainWindowSrc.CompositionTarget.BackgroundColor = Colors.Transparent;
要使AeroGlass恢复工作,我必须为每个包含文本的控件设置这些.NET 4.0属性:

RenderOptions.cleartypeint=“Enabled”TextOptions.TextFormattingMode=“Display”TextOptions.TextRenderingMode=“ClearType”

然后看起来是这样的:

RenderOptions.ClearTypeHintProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata { DefaultValue = ClearTypeHint.Enabled });
TextOptions.TextFormattingModeProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata { DefaultValue = TextFormattingMode.Display });

有没有一种方法可以在不为窗口上的每个控件设置这些属性的情况下获得相同的效果


谢谢。

您可以在主Windows Constructor中全局设置此选项

大概是这样的:

RenderOptions.ClearTypeHintProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata { DefaultValue = ClearTypeHint.Enabled });
TextOptions.TextFormattingModeProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata { DefaultValue = TextFormattingMode.Display });

谢谢,成功了!但是这个代码可以移到其他地方吗?我想把它留在我的AeroGlass课堂上。