Xaml 基于另一个元素宽度的可见性转换器

Xaml 基于另一个元素宽度的可见性转换器,xaml,visibility,Xaml,Visibility,我有一个Silverlight应用程序,我使用MVVM 我想根据另一个元素的当前宽度(或窗口宽度至少…)显示或隐藏文本块。问题是,如果我缩小窗口的宽度,我现在有两个文本,所以我需要隐藏第二个文本块 我是一名初学者,我知道如何使用VisibilityConverter和ViewModel中的布尔值,但不是这样…要绑定到另一个元素的属性,您可以执行以下操作: Visibility="{Binding ActualWidth, ElementName=TheThingWho

我有一个Silverlight应用程序,我使用MVVM

我想根据另一个元素的当前宽度(或窗口宽度至少…)显示或隐藏文本块。问题是,如果我缩小窗口的宽度,我现在有两个文本,所以我需要隐藏第二个文本块


我是一名初学者,我知道如何使用VisibilityConverter和ViewModel中的布尔值,但不是这样…

要绑定到另一个元素的属性,您可以执行以下操作:

Visibility="{Binding ActualWidth, 
             ElementName=TheThingWhoseWidthYouAreBindingTo, 
             Converter={StaticResource WidthToVisibilityConverter}}"

然后自己创建一个
WidthToVisibilityConverter
,它接受宽度值并返回可见性值。

Thx,但转换器仅在我运行应用程序时使用(宽度实际宽度=0.0)。是否有一种方法可以在每次调整窗口大小时自动使用它?如何从ViewModel中跟踪控件的实际宽度?简短回答,您不想跟踪VM中的实际宽度。。。这绝对是一个显示属性,而不是VM想要担心的事情。也许你想把它抽象出来,或者重新思考你的设计。为什么在窗口缩小时隐藏第二个文本框?为什么不把它包装到第二行呢?我有Listbox模板控制内部项的
宽度
绑定到约束网格的
宽度
,并且只要布局发生变化,它就会更新。尝试使用宽度而不是
实际宽度