2013-04-08 56 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; }