BooleanToVisibilityConverter.cs

本文介绍了一个用于WPF应用程序的BooleanToVisibilityConverter类。该类实现IValueConverter接口,可以将布尔值或Nullable<bool>类型的值转换为Visibility类型,用于控制UI元素的显示状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//---------------------------------------------------------------------------- 
//
// Copyright (C) Microsoft Corporation.  All rights reserved.
//
//--------------------------------------------------------------------------- 

using System; 
using System.ComponentModel; 
using System.Windows;
using System.Windows.Media; 
using System.Windows.Data;
using System.Globalization;
using System.Collections.Generic;
 
using MS.Internal.Controls;
 
 
namespace System.Windows.Controls
{ 
    /// <summary>
    /// Convert between boolean and visibility
    /// </summary>
    [Localizability(LocalizationCategory.NeverLocalize)] 
    public sealed class BooleanToVisibilityConverter : IValueConverter
    { 
        /// <summary> 
        /// Convert bool or Nullable&lt;bool&gt; to Visibility
        /// </summary> 
        /// <param name="value">bool or Nullable&lt;bool&gt;</param>
        /// <param name="targetType">Visibility</param>
        /// <param name="parameter">null</param>
        /// <param name="culture">null</param> 
        /// <returns>Visible or Collapsed</returns>
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
        { 
            bool bValue = false;
            if (value is bool) 
            {
                bValue = (bool)value;
            }
            else if (value is Nullable<bool>) 
            {
                Nullable<bool> tmp = (Nullable<bool>)value; 
                bValue = tmp.HasValue ? tmp.Value : false; 
            }
            return (bValue) ? Visibility.Visible : Visibility.Collapsed; 
        }

        /// <summary>
        /// Convert Visibility to boolean 
        /// </summary>
        /// <param name="value"></param> 
        /// <param name="targetType"></param> 
        /// <param name="parameter"></param>
        /// <param name="culture"></param> 
        /// <returns></returns>
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is Visibility) 
            {
                return (Visibility)value == Visibility.Visible; 
            } 
            else
            { 
                return false;
            }
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.

Ref: http://www.projky.com/dotnet/3.0/System/Windows/Controls/BooleanToVisibilityConverter.cs.html

下载地址:http://www.projky.com/dotnet/3.0/System/Windows/Controls/BooleanToVisibilityConverter.cs

转载于:https://www.cnblogs.com/zisezhixin/p/4263520.html

<Application x:Class="XVision.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" xmlns:converters="clr-namespace:XVision.Converters" xmlns:models="clr-namespace:XVision.Models" xmlns:system="clr-namespace:System;assembly=mscorlib"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <materialDesign:BundledTheme BaseTheme="Light" PrimaryColor="Blue" SecondaryColor="Lime" /> <!-- 核心主题 --> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml"/> <!-- 颜色方案 --> <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.Blue.xaml"/> <!-- 包含 MaterialDesignTextButton 的默认样式 --> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml"/> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" /> </ResourceDictionary.MergedDictionaries> <!-- 转换器资源 --> <converters:BooleanToConnectionStatusConverter x:Key="BooleanToConnectionStatusConverter"/> <converters:BooleanToStatusColorConverter x:Key="BooleanToStatusColorConverter"/> <converters:InverseBooleanConverter x:Key="InverseBooleanConverter"/> <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/> <converters:BooleanToStringConverter x:Key="BooleanToStringConverter"/> </ResourceDictionary> </Application.Resources> </Application> 命名空间“clr-namespace:XVision.Converters”中不存在“BooleanToConnectionStatusConverter”名称。 <TextBlock Text="{Binding IsPlcConnected, Converter={StaticResource BooleanToConnectionStatusConverter}}" Margin="0,10,0,0" FontSize="18" FontWeight="Bold"/> 资源“BooleanToConnectionStatusConverter”具有不兼容的类型。
06-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值