今天在写代码的时候,想通过几个不同控件和属性来自动更新某一MenuItem的IsEnabled的值,刚开始使用的是DataTrigger来实现,但是无论怎么写都无法实现,最后悉心研究(思考人生)了4个小时,终于实现。
直接使用多绑定和多值转换器来绑定到IsEnabled属性上,废话不多说,Show my Code:
//先在Window.Resources中加入转换器实体
<Window.Resources>
<convert:UserStatusConverter x:Key="userStatus"/>
</Window.Resources>
在xaml或者后台代码中使用多绑定,绑定到某控件的IsEnabled属性上;
代码略。。。请自行百度。
//最后实现一个多值转换器
using System.Windows.Data
namespace xxx
class UserStatusConvert: IMultiValueConverters
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
if(xx=true)
return ture;
return false;
public object[] ConvertBack(object values,Type[] targetType, object parameter, System.Globalization.CultureInfo culture)
return null;
控件通用属性:
Visibility:控件是否可见:枚举类型。Visible表示可见,Collapsed不可见。
IsEnabled:控件是否可用。Bool类型。
Background 背景色
FontSize 字体大小
QWidget 是所有可视化组件的基类,几乎所有的GUI控件(如按钮、标签、窗口等)都继承自这个类。因此,QWidget 包含的属性和方法可以认为是通用的,它们可以被所有派生类使用。
1.创建转换类,0为已读,让“阅”按钮不可用,即返回False
[code="c#"]
public class ReadOrNoReadConverter : IValueConverter
public object Convert(object value, Type targetType, object parameter, System.Globali...
我的程序中有一个xaml窗口,它有一个名为"Save"的按钮和一个 textBox . 我也有一个ViewModel用于此窗口 . 在ViewModel中,我有 textBox 的 string 属性,按钮上有 IsEnabled 的 bool 属性 . 我希望只有在 textBox 内有文本时才能启用该按钮 .xaml:ViewModel properties://Property for N...
<Grid Grid.Row="0">
<Slider Name="SliderName" Grid.Row="0" VerticalAlignment="Center"
Minimum="10"
Maximum="24"
Value="10"
ToolTip="{Binding ElementName=Slider...
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。
本文主要内容:
CheckBox复选框的自定义样式,有两种不同的风格实现;
RadioButton单选框自定义样式,有两种不同的风格实现;
二. CheckBox自定义样式
2.1 CheckBox基本...
<TextBox x:Name="textBox1" Width="300" FontSize="15" />
<TextBox Width="25" Height="25" Text="{Binding Path=Text,ElementName=textBox1}" />
Path=想要取的元素(控件)的值
ElementName=元素(控件)的名称(x:Name)
<Button Content="删除" Width="90" Name="btnDel" Margin="10, 5, 5, 5" Command="{Binding CmdDelPic}" IsEnabled="{Binding ElementName=lbImgs, Path=SelectedItems.Count}"/>
参考文章:https://st
反向选择的相关要求
[ValueConversion(typeof(bool), typeof(bool))]
public class InverseBooleanConverter : IValueConverter
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter,
Syste