我已将效果应用于此模板的边框。然后效果会应用到其中的每个元素,因此我得到的阴影比我照顾的要多。有没有办法禁用这种效果?你可以看到我在其中添加了一个模糊效果,但最后我得到了模糊的阴影效果:)
DataTemplate x:Key="TestInstanceViewModelTemplate">
<Border BorderThickness="1" BorderBrush="#FF0909B4">
<Border.Effect>
<DropShadowEffect/>
</Border.Effect>
<DockPanel>
<DockPanel.Effect>
<BlurEffect/>
</DockPanel.Effect>
<Grid DockPanel.Dock="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="50" Width="1*" />
<ColumnDefinition MinWidth="50" Width="1*"/>
</Grid.ColumnDefinitions>
<Button Command="{Binding Path=StartCommand}" Content="Start" Grid.Column="0" Grid.Row="0" />
<Button Command="{Binding Path=StopCommand}" Content="Stop" Grid.Column="1" Grid.Row="0"/>
</Grid>
<WpfTestingClient:StatusControl DockPanel.Dock="Top" HorizontalAlignment="Stretch"></WpfTestingClient:StatusControl>
</DockPanel>
</Border>
</DataTemplate>
答案 0 :(得分:6)
我建议将最顶层的容器更改为Grid并在其中包含Border和DockPanel在同一级别上,让Border位于底部并伸展以填充Grid,同时将DockPanel置于顶部并添加1px边距围绕它来解释你的BorderThickness。这样,不仅将阴影仅应用于Border元素,而且每次内部发生任何变化时都不必重新渲染效果,从而节省了大量资源。