2011-01-11 74 views
1

你好 我想創建一個圖像的RadialButton樣式,我希望圖像(源)是可變的。wpf風格的橢圓按鈕填充屬性圖片

<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"/> 

我想Ellipse.Fill屬性是可變的,由按鈕的內容屬性設置。 我會尋找到綁定,的RelativeSource,等等......但如果有人對如何實現這一

感謝您的想法將不勝感激

附錄

喜歡的東西

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

回答

2

您可以在綁定中使用RelativeSource

<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

沒有工作b ut響應橢圓內的點擊事件 – Nestor 2011-01-11 10:41:01