目前我正在开发包含标签的wpf popup,该标签由控件模板内的文本块组成。我的问题是弹出窗口有一个底部边框阴影。弹出窗口已经有一个边框,这个阴影效果增加了底部边框厚度,看起来像这样(请查看下面的链接以查看弹出窗口的截图)。
Wpf代码就像这样
标签控制模板样式
<Style x:Key="popuplabelstyle" TargetType="{x:Type Label}">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Label}">
<Border BorderBrush="Red" x:Name="labelBorder" BorderThickness="1" Padding="12" Background="White" Height="auto" MinHeight="260" Width="220">
<StackPanel>
<TextBlock Text="ABCD" Margin="0,0,0,4" />
<TextBlock Text="abcd" Margin="0,4,0,0" />
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
弹出窗口的xaml代码
<Popup x:Name="Mypopup" Panel.ZIndex="2" Placement="MousePoint" HorizontalOffset="10" VerticalOffset="10" IsOpen="{Binding ">
<Label Style="{StaticResource popuplabelstyle}"/>
</Popup>
我不知道为什么会这样发生。任何人都可以帮我解决这个问题吗?
查看弹出窗口in below link
的屏幕截图答案 0 :(得分:0)
尝试将Border的SnapsToDevicePixels和/或UseLayoutRounding属性设置为True以启用像素捕捉渲染:
<ControlTemplate TargetType="{x:Type Label}">
<Border BorderBrush="Red" x:Name="labelBorder"
BorderThickness="1" Padding="12" Background="White" Height="auto" MinHeight="260" Width="220"
SnapsToDevicePixels="True" UseLayoutRounding="True">
<StackPanel>
<TextBlock Text="ABCD" Margin="0,0,0,4" />
<TextBlock Text="abcd" Margin="0,4,0,0" />
</StackPanel>
</Border>
</ControlTemplate>
这应该使边框看起来更清晰。