Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2012, 03:56   #1
D][mon
Форумчанин
 
Регистрация: 05.01.2010
Сообщений: 150
По умолчанию WPF. странно работает тригер

Доброго времени суток
к примеру такой код срабатывает
при максимизации окна меняется радиус угла Border
Код:
<Border.Style>
            <Style TargetType="Border">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=window, Path=WindowState}" Value="Maximized">
                        <Setter Property="CornerRadius" Value="20" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
а вот значение Margin не меняется, почему?
вообще мне нужно, чтобы если окно максимизировано, Border заниал его всего, есть ли другие способы сделать это в xaml?
D][mon вне форума Ответить с цитированием
Старый 28.11.2012, 09:41   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Скоре всего, Margin у вас уже указан в описании самого Border.

Код:
<Border Margin="50"> <!-- этот Margin имеет приоритет над заданным в стиле!!! -->
            <Border.Style>
                <Style TargetType="Border">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=window, Path=WindowState}" Value="Maximized">
                            <Setter Property="CornerRadius" Value="20" /> 
                            <Setter Property="Margin" Value="0" /> <!-- Триггер сработает, но этот margin перекроется предыдущим -->
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Border.Style>
        </Border>
Попробуйте удалить Margin из описания Border и перенести его в стиль. Примерно так:

Код:
 <Border>
            <Border.Style>
                <Style TargetType="Border">
                    <Setter Property="Margin" Value="50" /> <!-- Этот Margin - по умолчанию -->
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=window, Path=WindowState}" Value="Maximized">
                            <Setter Property="CornerRadius" Value="20" />
                            <Setter Property="Margin" Value="0" /> <!-- а этот - при развернутом окне -->
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Border.Style>
        </Border>
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странно работает Intel HD Graphics Serkoll Компьютерное железо 3 11.10.2012 15:34
БД Interbase работает странно. Yo_Asakyra БД в Delphi 1 27.05.2012 23:58
Удаление строки в StringGrid работает как-то странно. Turboworld Общие вопросы Delphi 3 25.04.2011 09:04
странно работает RegSetValueEx di91 Win Api 4 07.11.2010 15:27
Странно работает эзешник на другом компьютере runtimeLibrary(Multi-threaded (/MT) LostSoul Общие вопросы C/C++ 11 20.04.2009 23:25