2014-10-30 79 views
0

我有一個Silverlight應用程序,我使用MVVM。基於另一元素寬度的可見性轉換器

我想顯示或隱藏一個TextBlock,基於另一個元素的當前寬度(或窗口寬度至少...)。問題是,如果我減少我的窗口的寬度,我現在有2個文本,所以我需要隱藏在這種情況下的第二個文本塊...

我是初學者,我知道如何使用從我的ViewModel的一個boolean VisibilityConverter,但不是這個樣子......

回答

1

要綁定到另一個元素的屬性,你會做這樣的事情:

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

然後創建自己WidthToVisibilityConverter那取得寬度值並返回一個可見性值。

+0

Thx,但轉換器僅在運行應用程序時使用(width ActualWidth = 0.0)。有沒有一種方法可以在每次調整窗口大小時自動使用它? – Gab 2014-10-30 10:54:22

+0

如何從我的ViewModel跟蹤控件的ActualWidth? – Gab 2014-10-30 11:33:23

+0

簡短的回答,你不想跟蹤虛擬機中的ActualWidth ...這絕對是一個顯示屬性,而不是VM想要擔心的事情。也許你想以某種方式將它抽象出來,或者重新考慮你的設計。窗口縮小時爲什麼要隱藏第二個文本框?爲什麼不把它包裝到第二行呢? – Mashton 2014-10-30 12:23:46

相關問題