2014-04-22 32 views
0

我需要更改文本塊,它是一個按鈕裏面的樣式..如何更改文本塊的樣式按鈕

這裏有我的兩個款式:

 <Style x:Key="btnStyleLR" TargetType="TextBlock"> 
      <Setter Property="FontFamily" Value="Segoe UI Light" /> 
      <Setter Property="FontSize" Value="40" /> 
      <Setter Property="Padding" Value="0,20,0,20" /> 
     </Style> 

      <Style x:Key="btnStyleLROverride" BasedOn="{StaticResource btnStyleLR}" TargetType="TextBlock"> 
      <Setter Property="FontSize" Value="10" /> 
      <Setter Property="Padding" Value="0,10,0,10" /> 
     </Style> 

,然後:

 <Style x:Key="btnLoginRegister" TargetType="Button"> 
      <Setter Property="Width" Value="400" /> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="Button"> 
         <Grid> 
          <Border x:Name="brd" 
            BorderBrush="Orange" 
            BorderThickness="1" 
            CornerRadius="6"> 

           <TextBlock HorizontalAlignment="Center" 
              Style="{TemplateBinding Tag}" 
              Text="{TemplateBinding Content}" /> 
          </Border> 
         </Grid> 

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

我綁定了按鈕pero的標籤屬性中的樣式,它不工作。 然後,我有兩個按鈕,我需要改變德文本塊風格:

    <Button x:Name="loginBtn" 
         Style="{StaticResource btnLoginRegister}" 
         Tag="btnStyleLROverride" 
         Content="Login" /> 

另:

  <Button x:Name="registerBtn" 
       Content="Register" 
       Tag="btnStyleLR" 
       Style="{StaticResource btnLoginRegister}" /> 

有另一種方式來改變風格結合的作品?感謝

回答

1

Tag你必須提供資源價值,不串。它應該是:

<Button x:Name="loginBtn" 
     Style="{StaticResource btnLoginRegister}" 
     Tag="{StaticResource btnStyleLROverride}" 
     Content="Login" /> 

對其他按鈕做同樣的操作。

2

你不應該摧毀一個按鈕的模板,除非這只是爲了這個問題的目的。解決您的問題的簡單方法是簡單地將TextBlock設置爲按鈕的內容,然後您可以更改其樣式,而無需通過模板進行黑客入侵。

+0

菲利普,模板有一些視覺狀態,影響邊界和textblock的風格,這是我能想到的唯一方法..也許這是錯誤的.. – WFgo

0

據我瞭解你的需求: 你有兩個Buttons(「登錄」和「註冊」),它需要在視覺上降低(不宜用可視狀態),並且擁有自己的「文字樣式」每個(但也許分享基礎風格)?它是否正確? 如果是這樣的話,我建議兩個不同的Button Styles(可能共享相同的基本樣式):

<Button x:Name="loginBtn" Content="Login" 
     Style="{StaticResource LoginButtonStyle}"/> 
<Button x:Name="registerBtn" Content="Register" 
     Style="{StaticResource RegisterButtonStyle}"/> 

和你的風格:喜歡FontSizeFontFamily

<Style x:Key="PlainButtonStyle" TargetType="Button"> 
    <Setter Property="FontFamily" Value="Segoe UI Light"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <Border BorderBrush="Orange" BorderThickness="1" CornerRadius="6"> 
        <TextBlock Text="{TemplateBinding Content}" 
         Padding="{TemplateBinding Padding}" 
         HorizontalAlignment="Center"/> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
<Style x:Key="LoginButtonStyle" 
     BasedOn="{StaticResource PlainButtonStyle}" TargetType="Button"> 
    <Setter Property="FontSize" Value="10"/> 
    <Setter Property="Padding" Value="0,10,0,10"/> 
</Style> 
<Style x:Key="RegisterButtonStyle" 
     BasedOn="{StaticResource PlainButtonStyle}" TargetType="Button"> 
    <Setter Property="FontSize" Value="40"/> 
    <Setter Property="Padding" Value="0,20,0,20"/> 
</Style> 

屬性繼承。