我需要将我所有的路径保存在一个画布中,这样我就可以很容易地检索它们。我发现它可以和VisualBrush一起工作。当我尝试检索VisuahBrush并将其放入Styles中时,出现错误:
不能将类型为System.Windows.Media.VisualBrush的对象应用于需要Systems.Windows.Style类型的属性。
否则,我如何才能将所有路径保存在画布中,并且仍然可以在Style%s中检索?
任何想法都将是一个很大的帮助,谢谢!
<VisualBrush x:Key="myVisualBrush">
<VisualBrush.Visual>
<Canvas>
<Path Fill="#FF231F20" Stretch="Fill" Width="12.69" Height="14.477" Canvas.Left="652.196" Canvas.Top="88.61" Data="F1M617.2051,52.7275C616.7281,52.4525,616.3391,52.6775,616.3391,53.2275L616.3391,66.4695C616.3391,67.0195,616.7281,67.2445,617.2051,66.9695L628.6721,60.3485C629.1481,60.0735,629.1481,59.6235,628.6721,59.3485z"/>
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
<Style x:Key="myVisualStyle" BasedOn="{StaticResource myVisualBrush}" TargetType="{x:Type TextBox}">
<!-- Styles -->
</Style>
发布于 2013-01-06 12:33:34
您的VisualBrush被设计为分配给一个接受画笔的对象,就像背景一样,而不是您正在尝试的样式。我建议你这样做。(这个例子将为每个TextBox分配相同的样式。如果你需要能够挑选你的画笔,那么我建议你把x:Key重新添加到你的样式中,并将样式分别分配给你的TextBox)
<Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="400" Width="400">
<Window.Resources>
<VisualBrush x:Key="myVisualBrush">
<VisualBrush.Visual>
<Canvas>
<Path Fill="#FF231F20" Stretch="Fill" Width="12.69" Height="14.477" Canvas.Left="652.196" Canvas.Top="88.61" Data="F1M617.2051,52.7275C616.7281,52.4525,616.3391,52.6775,616.3391,53.2275L616.3391,66.4695C616.3391,67.0195,616.7281,67.2445,617.2051,66.9695L628.6721,60.3485C629.1481,60.0735,629.1481,59.6235,628.6721,59.3485z"/>
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Background" Value="{StaticResource myVisualBrush}"/>
</Style>
<Style x:Key="myPathStyle" TargetType="{x:Type Path}">
<Setter Property="Fill" Value="{StaticResource myVisualBrush}"/>
</Style>
</Window.Resources>
<Grid>
<TextBox x:Name="MyTextBox" />
<Path Style="{StaticResource myPathStyle}" x:Name="myPath" >
<Path.Data>
<RectangleGeometry Rect="100,100,100,100"/>
</Path.Data>
</Path>
</Grid>
</Window>https://stackoverflow.com/questions/14179172
复制相似问题