【问题标题】:WPF Template Binding Path.FillWPF 模板绑定 Path.Fill
【发布时间】:2012-09-27 21:13:16
【问题描述】:

我有以下风格:

<Style x:Key="WindowButtonTriggers" TargetType="Button">            
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="{StaticResource MainColorBrush}" />
            </Trigger>
            <Trigger Property="IsPressed" Value="True">
                <Setter Property="Background" Value="{StaticResource MainColorBrush}" />
            </Trigger>
        </Style.Triggers>
    </Style>
    <Style x:Key="MinimizeButton" TargetType="Button" BasedOn="{StaticResource WindowButtonTriggers}">
        <Setter Property="Background" Value="{StaticResource WhiteBrush}" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Canvas x:Name="appbar_minus" Width="48" Height="48" Clip="F1 M 0,0L 48,0L 48,48L 0,48L 0,0" Background="Transparent" UseLayoutRounding="False">
                        <Rectangle Width="24" Height="4" Canvas.Left="12" Canvas.Top="24" Stretch="Fill" Fill="{TemplateBinding Background}" />
                    </Canvas>
                </ControlTemplate>
            </Setter.Value>
        </Setter>                        
    </Style>
    <Style x:Key="CloseButton" TargetType="Button" BasedOn="{StaticResource WindowButtonTriggers}">
        <Setter Property="Background" Value="{StaticResource WhiteBrush}" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Canvas x:Name="appbar_close" Width="48" Height="48" Clip="F1 M 0,0L 48,0L 48,48L 0,48L 0,0" Background="Transparent">
                        <Path Width="20" Height="20" Canvas.Left="14" Canvas.Top="14" Stretch="Fill" Fill="{TemplateBinding Background}" Data="F1 M 17,14L 24,21L 30.9999,14.0001L 33.9999,17.0001L 27,24L 33.9999,31L 31,34L 24,27L 17,34L 14,31L 21,24L 14,17L 17,14 Z "/>
                    </Canvas>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

当我创建一个样式为“MinimizeButton”的按钮时,它可以正常工作(当鼠标悬停在按钮颜色发生变化时)但是当我创建一个样式为“CloseButton”的按钮时,它不起作用而且我没有理解为什么,因为它们几乎是相同的风格。

非常感谢任何帮助

编辑

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="100"/>
    </Grid.ColumnDefinitions>
    <my:Menu Grid.Column="0" BorderThickness="0,0,1,0" BorderBrush="#FF777777"/>
    <WrapPanel Grid.Column="1" VerticalAlignment="Center" Margin="4,0,0,0">
        <Button Style="{StaticResource MinimizeButton}" />            
        <Button Style="{StaticResource CloseButton}" Command="Close" />      
    </WrapPanel>
</Grid>

【问题讨论】:

  • 您能否显示使用这些样式的 XAML?

标签: wpf styles controltemplate


【解决方案1】:

它不起作用的原因是没有定义关闭命令和 CanExcecute,然后将按钮上的 IsEnabled 属性设置为 false。 MSDN 声明

在任何给定对象上都不一定有该命令的实现;在许多情况下,命令的实现是应用程序编写者的责任。

Here 是一篇关于代码项目的好文章,可帮助您开始使用 WPF 命令。

【讨论】:

  • 谢谢,这就是问题所在:)
猜你喜欢
  • 2021-12-25
  • 2014-08-23
  • 1970-01-01
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多