Связывание WPF из System.Windows.SystemParameters.PrimaryScreenWidth с конвертером - PullRequest
3 голосов
/ 01 апреля 2012

Я пытаюсь связать System.Windows.SystemParameters.PrimaryScreenWidth со свойством ColumnDefinition (изнутри 'Grid') и использую конвертер для преобразования 'PrimaryScreenWidth' в 'GridLength'.Но он никогда не попадет внутрь кода 'convert'.

Вот мой XAML:

<Window.Resources>
   <local:ScreenWidthToLeftBarWidth x:Key="leftBarConverter" />
</Window.Resources>
<ColumnDefinition Width="{Binding ElementName=System.Windows.SystemParameters, Path=PrimaryScreenWidth, Converter={StaticResource leftBarConverter}}"/>

Вот мой CodeBehind для конвертера (исключая метод '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". Любая помощь приветствуется, спасибо.

1 Ответ

7 голосов
/ 01 апреля 2012

ElementName для других элементов в XAML;для этого вам понадобится что-то вроде x:Static, например

Width="{Binding Source={x:Static SystemParameters.PrimaryScreenWidth},
                Converter=...}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...