0

なぜこれが機能しないのですか:

    <Button Width="200" Height="50">
    <Button.Style>
    <Style TargetType="Button">
        <Setter Property="Height" Value="{Binding RelativeSource={RelativeSource Self}, Path=Height}"/>
        <Setter Property="Background" Value="Blue"/>
        <Style.Triggers>
                <Trigger Property="Button.IsPressed" Value="true">
                    <Setter Property="Background" Value="green"/>
                    <Setter Property="Height" Value="20"/>
                </Trigger>
        </Style.Triggers>
    </Style>
    </Button.Style>

<Button.Template>
    <ControlTemplate>
        <Canvas x:Name="MainCanvas" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
            <Border 
            Width="{TemplateBinding Width}"  Height="{TemplateBinding Height}"
                      x:Name="Border"  
                      CornerRadius="2" 
                      BorderThickness="1"
                      Background="{TemplateBinding Background}"
                      BorderBrush="black">
               <ContentPresenter 
                 Margin="2"
                 HorizontalAlignment="Center"
                 VerticalAlignment="Center"
                 RecognizesAccessKey="True"/>
             </Border>
        </Canvas>
    </ControlTemplate>
</Button.Template>
Hello
</Button>

このような:

<Button Width="200" >
<Button.Style>
    <Style TargetType="Button">
        <Setter Property="Height" Value="50"/>
        <Setter Property="Background" Value="Blue"/>
        <Style.Triggers>
                <Trigger Property="Button.IsPressed" Value="true">
                    <Setter Property="Background" Value="green"/>
                    <Setter Property="Height" Value="20"/>
                </Trigger>
        </Style.Triggers>
    </Style>
</Button.Style>
<Button.Template>
    <ControlTemplate>
        <Canvas x:Name="MainCanvas" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
            <Border 
            Width="{TemplateBinding Width}"  Height="{TemplateBinding Height}"
                      x:Name="Border"  
                      CornerRadius="2" 
                      BorderThickness="1"
                      Background="{TemplateBinding Background}"
                      BorderBrush="black">
               <ContentPresenter 
                 Margin="2"
                 HorizontalAlignment="Center"
                 VerticalAlignment="Center"
                 RecognizesAccessKey="True"/>
             </Border>
        </Canvas>
    </ControlTemplate>
</Button.Template>
Hello
</Button>  

ボタンを押すと縮むようにしたい。これはカスタム コントロールのプロトタイプであるため、スタイルは後で Generics.xmal ファイルにリフト アウトされます。そして、ボタンに「Hello」文字列が表示されないのはなぜですか???

4

1 に答える 1

2

TargetType="Button"ControlTemplate タグに追加するまで、文字列「Hello」はボタンに表示されません。

<ControlTemplate TargetType="Button">

スタイル バインディングに関しては、プロパティをそれ自体にバインドしようとしていますが、これは意味がありません。何を達成しようとしていますか?

于 2010-02-01T13:43:25.977 に答える