現在、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 タグを受け入れるようにするには、何を変更する必要がありますか?