内容属性不止一次

时间:2015-12-24 10:05:33

标签: c# wpf

以下是代码,显示错误,即 :内容属性不止一次 代码:

<Window x:Class="Trigger.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
    <Style.Triggers>
        <Trigger Property="IsPressed" Value="True">
            <Setter Property="Opacity" Value="0.5" />
        </Trigger>
        <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Foreground" Value="Red" />
        </Trigger>
    </Style.Triggers>
</Style>
<Grid>

    <Button x:Name="PropertyTriggerButton" Width="160" Height="40" Margin="20,0,0,0"    HorizontalAlignment="Left"  Content="IsPressed Property"
          Cursor="Hand"  FontWeight="Bold"    Style="{StaticResource ButtonStyle}"    ToolTip="Press To Raise Property Trigger">            
    </Button>

    </Grid>
</Window>

2 个答案:

答案 0 :(得分:4)

Window元素只能容纳一个孩子。您需要将Style放入资源中。这样的事情会做:

<Window.Resources>
    <Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
        <Style.Triggers>
            <Trigger Property="IsPressed" Value="True">
                <Setter Property="Opacity" Value="0.5" />
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Foreground" Value="Red" />
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

将其放在Window元素的起始标记之后或Window元素的结束标记之前。

完整的代码应该是这样的:

<Window x:Class="Trigger.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
            <Style.Triggers>
                <Trigger Property="IsPressed" Value="True">
                    <Setter Property="Opacity" Value="0.5" />
                </Trigger>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Foreground" Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Grid>
        <Button x:Name="PropertyTriggerButton" Width="160" Height="40" Margin="20,0,0,0"    HorizontalAlignment="Left"  Content="IsPressed Property"
              Cursor="Hand"  FontWeight="Bold"    Style="{StaticResource ButtonStyle}"    ToolTip="Press To Raise Property Trigger">            
        </Button>
    </Grid>
</Window>

答案 1 :(得分:1)

在Window.Resources

中添加样式
<Window.Resources>
    <Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
        <Style.Triggers>
            <Trigger Property="IsPressed" Value="True">
                <Setter Property="Opacity" Value="0.5" />
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Foreground" Value="Red" />
            </Trigger>
        </Style.Triggers>
    </Style>
    </Window.Resources>
    <Grid >
        <Button x:Name="PropertyTriggerButton" Width="160" Height="40" Margin="20,0,0,0"    HorizontalAlignment="Left"  Content="IsPressed Property"
          Cursor="Hand"  FontWeight="Bold"    Style="{StaticResource ButtonStyle}"    ToolTip="Press To Raise Property Trigger">
        </Button>
    </Grid>