2011-01-11 10 views
1

Hallo Ich versuche, einen RadialButton-Stil mit einem Bild zu erstellen, und ich möchte, dass dieses Bild (source) variabel ist.wpf style ellipse button Fülleigenschaft Bild

<Style x:Key="RadialButton1" TargetType="Button"> 
       <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Button"> 
         <Ellipse 
          Stroke="Black" 
          HorizontalAlignment="Center" 
          VerticalAlignment="Center" 
          Width="60" 
          Height="60" 
          x:Name="Ellipse" > 
          <Ellipse.Fill > 
           <ImageBrush ImageSource="/DessCol;component/Images/Recommencer.ico"/> 
          </Ellipse.Fill> 
         </Ellipse> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

....

<Button Height="37" HorizontalAlignment="Left" Margin="15,20,0,0" Name="btnRecommencer" VerticalAlignment="Top" Width="51" Style="{StaticResource RadialButton1}" Click="btnRecommencer_Click"/> 

Ich möchte die Ellipse.Fill Eigenschaft vom Content-Attribut des Button Variable und eingestellt werden. Ich werde schauen, um Bindung, Relative, etc ... aber würde es begrüßen, wenn jemand eine Vorstellung davon haben, wie diese

Sie

danken

Nachtrag

etwas zu erreichen wie

<Ellipse Fill="{TemplateBinding Content}"/> 

Antwort

2

können Sie Relative verwenden in der

Bindung
<Style x:Key="RadialButton1" TargetType="Button"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Ellipse Stroke="Black" HorizontalAlignment="Center" VerticalAlignment="Center" 
         Width="60" Height="60" x:Name="Ellipse" > 
        <Ellipse.Fill > 
         <ImageBrush ImageSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type Button}}, 
                  Path=Content}"/> 
        </Ellipse.Fill> 
       </Ellipse> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

Hat b nicht funktionieren ut haben reagiert auf das Click-Ereignis in der Ellipse – Nestor

+0

Sorry, du hast Recht. Mit ...

+0

@Nestor: Bitte markieren Sie diese Antwort als akzeptiert, wenn es Ihr Problem gelöst hat –