2016-02-03 149 views
0

我有一個自定義樣式的按鈕自定義按鈕樣式內容屬性綁定

<Style x:Key="CustomButton" TargetType="Button"> 
    <Setter Property="BorderBrush" Value="Black"/> 
    <Setter Property="Foreground" Value="White"/> 
    <Setter Property="Content"> 
     <Setter.Value> 
      <Grid> 
       <Ellipse Width="40" Height="20" Fill="Yellow"/> 
       <TextBlock Text="{Binding ****Bind to Content Property on button***}"/> 
      </Grid>    
     </Setter.Value> 
    </Setter> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Border> 
        <Border.Background> 
         <SolidColorBrush x:Name="CustomBackground" 
             Color="LightBlue"/> 
        </Border.Background> 

        <ContentPresenter/> 
       </Border>     
      </ControlTemplate>    
     </Setter.Value> 
    </Setter> 
</Style> 

與我Content財產一個複雜的對象。 content財產的價值有TextBlock。是否有可能在TextblockText屬性綁定到的Button

<Button Style="{StaticResource CustomButton}" 
       Content="Bound to Textblock in style"/> 

回答

1

Content屬性簡單地使用TemplateBinding綁定TextBlockTextButtonContent

<Style x:Key="CustomButton" TargetType="Button"> 
     <Setter Property="BorderBrush" Value="Black"/> 
     <Setter Property="Foreground" Value="White"/> 

     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
        <Border> 
         <Border.Background> 
          <SolidColorBrush x:Name="CustomBackground" 
            Color="LightBlue"/> 
         </Border.Background> 

         <Grid> 
          <Ellipse Width="40" Height="20" Fill="Yellow"/> 
          <TextBlock Text="{TemplateBinding Content}"/> 
         </Grid> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
+0

當我用你的代碼示例我得到以下錯誤:''{DependencyProperty.UnsetValue}'不是Setter上的'System.Windows.Controls.Control.Template'屬性的有效值。'這隻有當我使用'TemplateBinding'時。 「內容」也不會顯示智能感知。只有'name','uid'和'ContentStringFormat' – mrsargent

+0

它在我的最後工作正常!,您沒有將ContentPresenter替換爲實際內容,是不是? – Usama

+0

重新啓動視覺工作室,它的工作。謝謝! – mrsargent