在 xaml Window.Resources 我定义了一个 VisualBrush:
<VisualBrush x:Name="LineVisualBrush" x:Key="LineVisualBrush" TileMode="Tile" Viewport="0,0,40,40" ViewportUnits="Absolute" Viewbox="0,0,40,40" ViewboxUnits="Absolute" PresentationOptions:Freeze="True">
<VisualBrush.Visual>
<Grid Background="Black">
<Path Data="M 0 0 L 40 0" Stroke="White" />
</Grid>
</VisualBrush.Visual>
</VisualBrush>
在后面的代码中,我需要更改网格背景颜色和路径描边颜色:
VisualBrush vb = new VisualBrush();
vb = (VisualBrush)Resources["LineVisualBrush"];
vb.Visual.SetValue(Grid.BackgroundProperty, new SolidColorBrush(Colors.Red));
vb.Visual.SetValue(Shape.StrokeProperty, new SolidColorBrush(Colors.Blue));
问题在于它将路径描边颜色设置为红色而不是蓝色,并且不会更改网格背景颜色。