テンプレートの編集(使用ブレンドしたり、ブレンドを持っていない場合、このようにそれを行う場合:.NET 4 control default templates without Blend)
これは、リボンボタンのスタイルの既定のコントロールテンプレートの一部です:
<ControlTemplate TargetType="{x:Type ribbon:RibbonButton}">
<Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="{TemplateBinding CornerRadius}" SnapsToDevicePixels="True">
<Border x:Name="InnerBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding CornerRadius}" Padding="{TemplateBinding Padding}">
<StackPanel x:Name="StackPanel">
<Image x:Name="PART_Image"
RenderOptions.BitmapScalingMode="NearestNeighbor" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Height="32" Margin="{DynamicResource {ComponentResourceKey ResourceId=LargeImageMargin, TypeInTargetAssembly={x:Type ribbon:Ribbon}}}" Source="{TemplateBinding LargeImageSource}" VerticalAlignment="Center"
Width="32"/>
<Grid x:Name="Grid" HorizontalAlignment="Center" VerticalAlignment="Center">
<ribbon:RibbonTwoLineText x:Name="TwoLineText" HorizontalAlignment="Center" LineStackingStrategy="BlockLineHeight" LineHeight="13" Margin="1,1,1,0" TextAlignment="Center" Text="{TemplateBinding Label}" VerticalAlignment="Top"/>
</Grid>
</StackPanel>
</Border>
</Border>
をあなたのニーズにこれを変更し、あなたが例えば、周囲のボーダーに画像の幅と高さを調整することができます:<:...キー=「TEMP」のControlTemplate X>
<ControlTemplate TargetType="{x:Type ribbon:RibbonButton}">
<Border x:Name="OuterBorder" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="{TemplateBinding CornerRadius}" SnapsToDevicePixels="True">
<Border x:Name="InnerBorder" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding CornerRadius}" Padding="{TemplateBinding Padding}">
<StackPanel x:Name="StackPanel">
<Image x:Name="PART_Image"
RenderOptions.BitmapScalingMode="NearestNeighbor" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Stretch="Fill" Height="{Binding ElementName=InnerBorder, Path=ActualHeight}"
Margin="{DynamicResource {ComponentResourceKey ResourceId=LargeImageMargin, TypeInTargetAssembly={x:Type ribbon:Ribbon}}}" Source="{TemplateBinding LargeImageSource}" VerticalAlignment="Center"
/>
<Grid x:Name="Grid" HorizontalAlignment="Center" VerticalAlignment="Center">
<ribbon:RibbonTwoLineText x:Name="TwoLineText" HorizontalAlignment="Center" LineStackingStrategy="BlockLineHeight" LineHeight="13" Margin="1,1,1,0" TextAlignment="Center" Text="{TemplateBinding Label}" VerticalAlignment="Top"/>
</Grid>
</StackPanel>
ので、私が配置してみました内に配置し、RibbonButtonにテンプレートを追加しました。 イメージは大きくなりましたが、それ以上のホバーエフェクトは利用できません。 もう一度smthngを行う必要がありますか? –
上記のコードよりも多くのコードがControlTemplateにあります。私のスニペットは単なる抜粋です。 完全なコントロールテンプレートを使用する場合、IsmouseOver/Hooverは正常に動作するはずです。 上記の方法でブレンドまたはリンクを使用して、完全なデフォルトコントロールテンプレートを取得します。私はそれが大きすぎると私はこのスレッドを混乱させたくないので、ここに投稿することはできません申し訳ありません... – SvenG
私はそれをありがとう、ありがとう。今私はテンプレート全体を抽出して、今はすべてが機能します。サポートsvenのおかげで! –