WPF当中StaticResource调用方法

1.先在Converter命名空间当中,定义转换功能类:

public sealed class BoolToValueConverter : System.Windows.Data.IValueConverter

    {
        public object TrueValue
        {
            get { return trueValue; }
            set { trueValue = value; }
        }
        object trueValue;
        public object FalseValue
        {
            get { return falseValue; }
            set { falseValue = value; }
        }
        object falseValue;

        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == null)
                return DependencyProperty.UnsetValue;
            var data = value.GetType().Name;
            if (value.GetType().Name.ToLower().Contains("int")|| value.GetType().Name == "Decimal")
            {
                if (int.Parse(value.ToString()) !=0)
                {
                    return TrueValue;
                }
                else
                {
                    return FalseValue;
                }
            }
            if (bool.TryParse(value.ToString(), out bool
                result))
            {
                if (result)
                    return TrueValue;
                else
                    return FalseValue;
            }
            else if (Enum.TryParse(value.ToString(), out Visibility
                 Enumresult))
            {
                if (Enumresult == Visibility.Visible)
                    return TrueValue;
                else
                    return FalseValue;
            }
            else
            {
                return DependencyProperty.UnsetValue;
            }
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return DependencyProperty.UnsetValue;
        }
    }
 
2.引用命名空间
          xmlns:converter="clr-namespace:Converter"
 
3.使用方法:
          在ResourceDictionary当中调用:
          <converter:BoolToValueConverter x:Key="BoolToColorConverter" TrueValue="#3F48CC" FalseValue="#ED1C24"/>
 
          <TextBlock TextWrapping="Wrap" Grid.Column="1" Text="{Binding IsSensitiveArea,Converter={StaticResource BoolToColorConverter}}"/>
 
          在window当中定义和调用:       
    <window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/Infrastructure;component\Style\Themes\Style.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <converter:BoolToValueConverter x:Key="BoolToValueConverterOnWord" TrueValue="是" FalseValue="否"/>
        </ResourceDictionary>
    </window.Resources>
    
     <TextBlock TextWrapping="Wrap" Grid.Column="1" Text="{Binding IsSensitiveArea,Converter={StaticResource BoolToValueConverterOnWord}}"/>
 
posted @ 2018-12-05 14:55  黑暗时代地表人  阅读(7446)  评论(0编辑  收藏  举报