使用GetValueSource方法获取依赖属性的源

前端之家收集整理的这篇文章主要介绍了使用GetValueSource方法获取依赖属性的源前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

from:

http://wpf.2000things.com/2010/12/05/146-use-getvaluesource-method-to-find-the-source-of-a-dependency-property-value/

It’s often helpful to determine the source of the current value of a dependency property. You can use theDependencyPropertyHelper.GetValueSourcemethod to do this.

In the following example,the source for the value of theForegroundproperty alternates between the style and the style trigger,based on the value of theIsEnabledproperty.

<Window.Resources>
    <Style x:Key="redgreenButton" TargetType="{x:Type Button}">
        <Setter Property="Foreground" Value="Green"/>
        <Style.Triggers>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Foreground" Value="Red"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<StackPanel Orientation="Vertical">
    <Button Content="A Button" Height="23" Width="75" Style="{StaticResource redgreenButton}" Name="btnTest"/>
    <Button Content="Enable/Disable" Height="24" Width="100" Name="btnDisable" Click="btnDisable_Click"/>
    <Button Content="Display Source" Height="24" Width="100" Name="btnDisplay" Click="btnDisplay_Click"/>
</StackPanel>

Here’s the code for the Display button’s Click event,which uses GetValueSource to report the base value source.

private void btnDisplay_Click(object sender,RoutedEventArgs e)
{
    ValueSource vs = DependencyPropertyHelper.GetValueSource(btnTest as DependencyObject,Button.ForegroundProperty);
    MessageBox.Show(string.Format("Source for Foreground property: {0}",vs.BaseValueSource));
}
原文链接:https://www.f2er.com/javaschema/285977.html

猜你在找的设计模式相关文章