2009-09-03 61 views

答えて

3

何か:

<Style TargetType="{x:Type Button}"> 
<Setter Property="Template"> 
<Setter.Value> 
<ControlTemplate TargetType="{x:Type Button}"> 
<Grid> 
<Ellipse Width="64" Height="32" Fill="Blue" /> 
<ContentControl Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" /> 
</Grid> 
</ControlTemplate> 
</Setter.Value> 
</Setter> 
</Style> 

私は、コードをテストしていないが、あなたのアイデアを得る必要があります:)

編集:もちろんの楕円は、Fillプロパティの代わりの背景を持っています。

アンドレイ

+0

これはxamlにどこに入りますか? – AwkwardCoder

+0

ボタンの "ビジュアルレベル"の上の任意の.Resourcesセクションに配置することができます。下のすべてのボタンは楕円形になります。たとえば、次のように <ボタンのコンテンツ= "テスト" /> Andrej

1

次のコードは、あなたのウィンドウに直接行くとIsPressedとIsMouseOverトリガをサポートすることができます。

<Window.Resources> 

    <ControlTemplate x:Key="ButtonControlTemplate" TargetType="{x:Type Button}"> 
     <Grid> 
      <Ellipse Fill="White" Stroke="Black" VerticalAlignment="Top" Height="32" x:Name="theEllipse"/> 
      <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"/> 
     </Grid> 
     <ControlTemplate.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Fill" Value="Yellow" TargetName="theEllipse"/> 
      </Trigger> 
      <Trigger Property="IsPressed" Value="True"> 
       <Setter Property="Fill" Value="Gray" TargetName="theEllipse"/> 
      </Trigger> 
     </ControlTemplate.Triggers> 
    </ControlTemplate> 

</Window.Resources> 

<Grid x:Name="LayoutRoot"> 
    <Button HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Content="Button" Template="{DynamicResource ButtonControlTemplate}"/> 
</Grid> 
関連する問題