1

現在、Blend とオンラインで見つけたいくつかのチュートリアルを使用して、独自のボタン ユーザー コントロールを作成しようとしています。通常、カスタム スタイルを使用して必要なコントロールに適用するだけですが、いくつかの依存関係プロパティも記述したため、独自のユーザー コントロールを記述することにしました。

ボタン コントロールのスタイル設定を上書きせずに Content プロパティを設定する方法が頭に浮かびません。私のコードかもしれないと思っていましたが、別のボタンで新しく始めたところ、同じことが起こりました.Contentプロパティが設定されていると、ボタンは単に白くなり、左上隅に黒いテキストが表示されます.

Blend が生成した XAML コードは次のとおりです。

<UserControl x:Class="MyUI.Controls.MyButton"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DesignHeight="25" d:DesignWidth="100">
<UserControl.Resources>
    <Style x:Key="MyButtonStyle" TargetType="{x:Type Button}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Grid>
                        <Rectangle/>
                        <ContentPresenter 
                        HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
                        RecognizesAccessKey="True" 
                        SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
                        VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsFocused" Value="True"/>
                        <Trigger Property="IsDefaulted" Value="True"/>
                        <Trigger Property="IsMouseOver" Value="True"/>
                        <Trigger Property="IsPressed" Value="True"/>
                        <Trigger Property="IsEnabled" Value="False"/>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</UserControl.Resources>
<Grid>
    <Button Content="Button" Height="25" Style="{DynamicResource MyButtonStyle}" Width="100"/>
</Grid>

ここで、このようにメイン ウィンドウでボタンを参照すると、ユーザー コントロール内で行われたスタイリングが元に戻ります。

<local:MyButton Content="test" />

ボタンが別の Content タグを受け入れるようにするには、何を変更する必要がありますか?

4

1 に答える 1