C# 如果在WPF中有一个Rect图形';是空的吗?
这感觉应该是非常简单的事情,但我不能让它工作 我在C# 如果在WPF中有一个Rect图形';是空的吗?,c#,wpf,binding,drawing,C#,Wpf,Binding,Drawing,这感觉应该是非常简单的事情,但我不能让它工作 我在上有一个,其中上的DataContext绑定到Rect,我试图用属性画布绘制它。Left=“{Binding Left}”和Width=“{Binding Width}(与垂直组件类似) 如果有一个矩形,这很好,但是在绑定的Rect为空的情况下(即,IsEmpty==True),它会给我很多由BindingExpression生成的值对于具有无限值的目标属性错误无效 我尝试过使用IsEmpty属性上的数据触发器将可见性设置为折叠,我尝试过在父画布
上有一个
,其中
上的DataContext
绑定到Rect
,我试图用
属性画布绘制它。Left=“{Binding Left}”
和Width=“{Binding Width}
(与垂直组件类似)
如果有一个矩形,这很好,但是在绑定的Rect
为空的情况下(即,IsEmpty==True
),它会给我很多由BindingExpression生成的值对于具有无限值的目标属性错误无效
我尝试过使用IsEmpty
属性上的数据触发器将可见性设置为折叠
,我尝试过在父画布上执行相同的操作,但无论我做什么,仍然会出现这些绑定表达式错误
有没有办法简单地让它“如果它是空的,甚至不要尝试画这个”?我想我解决了类似的问题,比如:
<Rectangle Canvas.Left="{Binding Left}"
Canvas.Top="{Binding Top}">
<Rectangle.Style>
<Style TargetType="{x:Type Rectangle}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsEmpty}" Value="True">
<Setter Property="Canvas.Left" Value="0"/>
<Setter Property="Canvas.Top" Value="0"/>
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
因此,基本上是“破坏”对无效DataContext
值的绑定,并在XAML中设置一个固定值
注意:这是手写的XAML,可能包含语法错误
是相对于画布的绑定错误。左属性还是宽度属性?两者都有。还有垂直线。我每次都会遇到四个错误。我认为可以使用一个转换器,当rect的属性无效时,它返回零。或者尝试一下答案,它看起来不错。实际上我是以另一种方式做的——我检查绑定是否为假,如果为假,则设置位置/尺寸。谢谢