2013-04-08 116 views
1

我是WPF的新手。最近我遇到了一個問題,我必須動態更改標籤的字體大小。動態更改app.xaml中樣式中指定的屬性的值

爲了達到這個目的,我創建了一個測試應用程序,並使用我的App.xaml中的一個鍵創建了一個樣式。

然後給這個風格的標籤。

風格是如下:

<Style x:Key="myLbl" TargetType="Label"> 
    <Setter Property="FontSize" Value="20"/> 
</Style> 

然後,我在給這個StyleLabelWindowXAML,如:

<Label Name="lblDemo" Content="Test" Foreground="Black" Style="{DynamicResource myLbl}"/> 

我想更改StyleProperty的價值點擊按鈕。我搜索了一下,但沒有發現任何有用的東西。任何人都可以建議我一個正確的可能方向任何幫助將不勝感激。

謝謝。

回答

2

如果你想只有做到這一點使用XAML,你能做到這一點,像這樣:

<StackPanel> 
    <Label Name="lblDemo" Content="Test" Foreground="Black" FontSize="20"/> 
    <Button x:Name="ClickMe" Content="Enlarge" /> 
    <StackPanel.Triggers> 
     <EventTrigger RoutedEvent="Button.Click" SourceName="ClickMe"> 
      <EventTrigger.Actions> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimationUsingKeyFrames Storyboard.TargetName="lblDemo" Storyboard.TargetProperty="FontSize"> 
          <DiscreteDoubleKeyFrame KeyTime="00:00:00.01" Value="48" /> 
         </DoubleAnimationUsingKeyFrames> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger.Actions> 
     </EventTrigger> 
    </StackPanel.Triggers> 
</StackPanel> 

或者您可以使用此代碼使用代碼良好的老式Click事件處理程序的背後(使用Button以上無StackPanel.Triggers部分):

private void ClickMe_OnClick(object sender, RoutedEventArgs e) { lblDemo.FontSize = 48; }