0
我想System.Windows.SystemParameters.PrimaryScreenWidth Width屬性(一個「網格」內,從)綁定到一個ColumnDefinition的,並使用轉換器轉換'PrimaryScreenWidth'轉換爲'GridLength'。但它永遠不會進入'轉換'代碼。WPF從System.Windows.SystemParameters.PrimaryScreenWidth綁定一個轉換器
這裏是我的XAML:
<Window.Resources>
<local:ScreenWidthToLeftBarWidth x:Key="leftBarConverter" />
</Window.Resources>
<ColumnDefinition Width="{Binding ElementName=System.Windows.SystemParameters, Path=PrimaryScreenWidth, Converter={StaticResource leftBarConverter}}"/>
這裏是我的轉換代碼隱藏(而忽略了「ConvertBack」的方法:
public class ScreenWidthToLeftBarWidth : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double aValue = (double)value;
GridLength newWidth = new GridLength(aValue);
return (newWidth);
}
}
現在,我已經能夠在一個稍微成功綁定使用'按鈕'對象的不同場景寬度和通過轉換器運行它,所以我想這個問題是與我想如何綁定從「ElementName = System.Windows.SystemParameters」。任何幫助表示讚賞,謝謝。
我希望它是動態的(如果用戶更改屏幕分辨率,可能會發生更改通知,對不對?)。另外,我需要一個轉換器來隨着它的動態變化來改變它的值。關於備用解決方案的任何想法? – 2012-04-01 01:45:45
@RuneStar:你可以在與'Source'的綁定中使用它(請參閱編輯),以獲取需要訂閱某個事件(可能在系統級別,我不知道)的更改通知,然後更新綁定例如通過'BindingExpression.UpdateTarget')。 – 2012-04-01 01:55:20