1

我已经对该模板的边框应用了一种效果。然后将效果应用于其中的每个元素,因此我得到的阴影比我关心的要多。有没有办法禁用效果?你可以看到我在里面添加了一个模糊效果,但是我最终得到了模糊的阴影:)

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>
4

1 回答 1

7

我建议将最上面的容器更改为 Grid 并在同一级别包含您的 Border 和 DockPanel,让 Border 位于底部并拉伸以填充 Grid,同时将 DockPanel 放在顶部并在其周围添加 1px 边距考虑你的 BorderThickness。这种方式不仅将阴影仅应用于边框元素,而且您不必在每次内部发生任何变化时都重新渲染效果,从而节省大量资源。

于 2011-03-09T16:24:03.790 回答