【问题标题】:VisualBrush Fill in StyleVisualBrush 填充样式
【发布时间】:2016-06-05 21:05:57
【问题描述】:

我希望我在 XAML 文件中创建的这种类型的按钮成为 App.XAML 中的一种样式。

<Button Width="25" Height="25" ToolTip="Add" Command="{Binding CanAdd}" Padding="0">
    <Rectangle Width="15" Height="15">
        <Rectangle.Fill>
            <VisualBrush Visual="{StaticResource appbar_add}"/>
        </Rectangle.Fill>
    </Rectangle>
</Button>

根据@Ash 的答案更新了我的代码,它没有给我任何错误,但按钮保持空白。 在我的 App.XAML 中,我有这个:

        <VisualBrush x:Key="Add"
                     Visual="{StaticResource appbar_add}" />

        <!--Button Add-->
        <Style TargetType="Button"
               x:Key="AddButton"
               BasedOn="{StaticResource SmallButton}">
            <Setter Property="ToolTip"
                    Value="Add" />
            <Style.Resources>
                <Style TargetType="Rectangle">
                    <Setter Property="Fill"
                            Value="{StaticResource Add}">
                    </Setter>
                </Style>
            </Style.Resources>
        </Style>         

【问题讨论】:

    标签: wpf xaml styles app.xaml


    【解决方案1】:

    如果资源中有一个带有 appbar_add 键的 Visual,则使用该 Visual 声明一个 VisualBrush 并在任何地方使用画笔:

    <Window.Resources>
        <Border x:Key="appbar_add">
            <TextBlock Text="+"/>
        </Border>
    
        <VisualBrush x:Key="appbar_addBrush" 
                     Visual="{StaticResource appbar_add}"/>
    </Window.Resources>
    
    <Rectangle Width="15" Height="15" 
               Fill="{StaticResource appbar_addBrush}"/>
    

    【讨论】:

    • @Hypenate,请单独尝试我的示例以确保它正常工作。 VisualBrush 用于 Rectangle 样式,在 Button 样式 Resources 中声明。 Rectangle 和 Button 有什么关系?按钮在模板中是否包含矩形或什么?
    • 我从 MahApps mahapps.com/guides/icons-and-resources.html 得到它的代码我得到的错误是:'System.Windows.Media.VisualBrush' 不是属性 'Visual' 的有效值
    • 如果我把画笔放在外面,我只是将填充属性设置为绿色,它仍然保持空白
    猜你喜欢
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多