首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF -将VisualBrush插入样式时出错?

WPF -将VisualBrush插入样式时出错?
EN

Stack Overflow用户
提问于 2013-01-06 12:06:20
回答 1查看 1.6K关注 0票数 1

我需要将我所有的路径保存在一个画布中,这样我就可以很容易地检索它们。我发现它可以和VisualBrush一起工作。当我尝试检索VisuahBrush并将其放入Styles中时,出现错误:

不能将类型为System.Windows.Media.VisualBrush的对象应用于需要Systems.Windows.Style类型的属性。

否则,我如何才能将所有路径保存在画布中,并且仍然可以在Style%s中检索?

任何想法都将是一个很大的帮助,谢谢!

代码语言:javascript
复制
<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>    

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-06 12:33:34

您的VisualBrush被设计为分配给一个接受画笔的对象,就像背景一样,而不是您正在尝试的样式。我建议你这样做。(这个例子将为每个TextBox分配相同的样式。如果你需要能够挑选你的画笔,那么我建议你把x:Key重新添加到你的样式中,并将样式分别分配给你的TextBox)

代码语言:javascript
复制
<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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14179172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档