在WPF中,TreeView具有不同的轮廓阴影,StackPanel带有边框。如何解决?

时间:2014-08-05 14:38:30

标签: c# wpf treeview border

我有一个窗口,其TreeView的BorderThickness为1,BorderPanel为BorderThickness为1的Border元素。 正如您在下图中所看到的,Border获得了阴影效果,但Treeview并没有。如何解决这个问题(如果可能的话,删除阴影效果)?

general view

zoom view

我尝试将TreeView的BorderThickness设置为0并将TreeView放入边框,但它没有工作。

XAML摘要:

<Grid Name="MainGrid" Margin="5,5,5,5">

        <Grid.RowDefinitions>
            <RowDefinition Height="1*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions >
            <ColumnDefinition Width="1*" />
            <ColumnDefinition Width="5" />
            <ColumnDefinition Width="2*" />
        </Grid.ColumnDefinitions>


        <TreeView ItemsSource="{Binding FinalResult}"  
                  SelectedItemChanged="TreeView_SelectedItemChanged"
                  BorderThickness="1"
                  >

            <TreeView.Resources>

            </TreeView.Resources>
        </TreeView>

        <GridSplitter Grid.Column="1" Width="5" HorizontalAlignment="Stretch" />
        <Border BorderBrush="#ff828790" BorderThickness="1" Grid.Column="2">
            <StackPanel>

</StackPanel>
</Border>
</Grid>

1 个答案:

答案 0 :(得分:1)

我认为您可能会因使用UIElement.SnapsToDevicePixels Property而受益。从链接页面:

  

获取或设置一个值,该值确定此元素的渲染是否应在渲染过程中使用特定于设备的像素设置。

如果在模糊控件上将此属性设置为true,则应将其直接与实际像素对齐以消除模糊:

<Border BorderBrush="#ff828790" BorderThickness="1" Grid.Column="2" 
    SnapsToDevicePixels="True">
    ...
</Border>