【发布时间】:2013-05-11 01:11:37
【问题描述】:
我有一个包含 TextBoxes 和 DatePickers 的 WPF 表单。 DatePicker 文本框字体非常模糊,因为我在样式上添加了阴影效果。最初,所有控件都具有作为样式的一部分的显式投影效果,但我通过从控件中删除投影效果并将其移动到具有相同投影的矩形来解决此问题。
然后我将 Rectangle 直接放在文本框的后面 - 我仍然有视觉效果,并且叠加控件中的字体看起来很棒。
<DropShadowEffect x:Key="dropShadow" Color="Gray" Opacity=".50" ShadowDepth="8" />
<Style x:Key="BackingRectangleStyle" TargetType="Rectangle">
<Setter Property="Effect" Value="{StaticResource dropShadow}" />
</Style>
<Rectangle Grid.Row="1" Grid.Column="3" Style="{StaticResource BackingRectangleStyle}"/>
<TextBox Grid.Row="1" Grid.Column="3" ... />
但是,我对 DatePicker TextBoxes 的模糊字体也有同样的问题,因为投影效果仍然直接在控件上。
我没有 DatePicker 样式,但我有 DatePickerTextBox 的样式,这就是效果的来源。
<Style TargetType="{x:Type DatePickerTextBox}">
<Setter Property="Effect" Value="{StaticResource dropShadow}" />
</Style>
我不知道该怎么做是按照我之前删除效果的模式,创建一个具有相同效果的 Rectangle 并将其放在 DatePicker TextBox 后面,使其大小相同,等等。我需要一点帮助在 XAML 上这样做。
谁能给我一些建议?
谢谢!
【问题讨论】:
-
你试过
SnapsToDevicePixels的DatePickerTextBox风格吗,例如:<Setter Property="SnapsToDevicePixels" Value="True" /> -
由于这是文本,我会考虑修改文本的 ClearType 属性:msdn.microsoft.com/en-us/library/ms749295.aspx
-
这两个建议(SnapsToDevicePixels 和 RenderOptions.ClearTypeHint)都没有改变任何东西。我有一个解决方案,只是不知道如何在 XAML 中进行设置。
标签: wpf wpf-controls