Kniga-Online.club
» » » » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Читать бесплатно Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

  <Setter Property="Height" Value="100"/>

  <Setter Property="Width" Value="100"/>

  <Setter Property="Background" Value="DarkGreen"/>

  <Setter Property="Foreground" Value="Yellow"/>

</Style>

Такой стиль будет работать только с элементами управления Button (или подклассами Button). Если применить его к несовместимому элементу, тогда возникнут ошибки разметки и компиляции. Добавьте элемент управления Button, который использует новый стиль:

<Button x:Name="btnAnotherButton" Content="OK!" Margin="0,10,0,0"

    Style="{StaticResource BigGreenButton}" Width="250" Cursor="Help"/>

Результирующий вывод представлен на рис. 27.7.

Еще один эффект от атрибута TargetType заключается в том, что стиль будет применен ко всем элементам данного типа внутри области определения стиля при условии, что свойство х:Key отсутствует.

Вот еще один стиль уровня приложения, который будет автоматически применяться ко всем элементам управления TextBox в текущем приложении:

<b>&lt;!-- Стандартный стиль для всех текстовых полей --&gt;</b>

&lt;Style TargetType=&quot;TextBox&quot;&gt;

  &lt;Setter Property=&quot;FontSize&quot; Value=&quot;14&quot;/&gt;

  &lt;Setter Property=&quot;Width&quot; Value=&quot;100&quot;/&gt;

  &lt;Setter Property=&quot;Height&quot; Value=&quot;30&quot;/&gt;

  &lt;Setter Property=&quot;BorderThickness&quot; Value=&quot;5&quot;/&gt;

  &lt;Setter Property=&quot;BorderBrush&quot; Value=&quot;Red&quot;/&gt;

  &lt;Setter Property=&quot;FontStyle&quot; Value=&quot;Italic&quot;/&gt;

&lt;/Style&gt;

Теперь можно определять любое количество элементов управления TextBox, и все они автоматически получат установленный внешний вид. Если какому-то элементу управления TextBox не нужен такой стандартный внешний вид, тогда он может отказаться от него, установив свойство StyleB {x:Null}. Например, элемент txtTest будет иметь неименованный стандартный стиль, а элемент txtTest2 сделает все самостоятельно:

&lt;TextBox x:Name=&quot;txtTest&quot;/&gt;

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

&lt;TextBox x:Name=&quot;txtTest2&quot; Style=&quot;{x:Null}&quot; BorderBrush=&quot;Black&quot;

    BorderThickness=&quot;5&quot; Height=&quot;60&quot; Width=&quot;100&quot; Text=&quot;Ha!&quot;/&gt;

Создание подклассов существующих стилей

Новые стили можно также строить на основе существующего стиля посредством свойства BasedOn. Расширяемый стиль должен иметь подходящий атрибут х:Кеу в словаре, т.к. производный стиль будет ссылаться на него по имени, используя расширение разметки {StaticResource} или {DynamicResource}. Ниже представлен новый стиль, основанный на стиле BigGreenButton, который поворачивает элемент управления Button на 20 градусов:

<b>&lt;!-- Этот стиль основан на BigGreenButton --&gt;</b>

&lt;Style x:Key=&quot;TiltButton&quot; TargetType=&quot;Button&quot;

    BasedOn=&quot;{StaticResource BigGreenButton}&quot;&gt;

  &lt;Setter Property=&quot;Foreground&quot; Value=&quot;White&quot;/&gt;

  &lt;Setter Property=&quot;RenderTransform&quot;&gt;

    &lt;Setter.Value&gt;

      &lt;RotateTransform Angle=&quot;20&quot;/&gt;

    &lt;/Setter.Value&gt;

  &lt;/Setter&gt;

&lt;/Style&gt;

Чтобы применить новый стиль, модифицируйте разметку для кнопки следующим образом:

&lt;Button x:Name=&quot;btnAnotherButton&quot; Content=&quot;OK!&quot; Margin=&quot;0,10,0,0&quot;

    Style=&quot;{StaticResource TiltButton}&quot; Width=&quot;250&quot; Cursor=&quot;Help&quot;/&gt;

Такое действие изменяет внешний вид изображения, как показано на рис. 27.8.

Определение стилей с триггерами

Стили WPF могут также содержать триггеры за счет упаковки объектов Trigger в коллекцию Triggers объекта Style. Использование триггеров в стиле позволяет определять некоторые элементы Setter таким образом, что они будут применяться только в случае истинности заданного условия триггера. Например, возможно требуется увеличивать размер шрифта, когда курсор мыши находится над кнопкой. Или, скажем, нужно подсветить текстовое поле, имеющее фокус, с использованием фона указанного цвета. Триггеры полезны в ситуациях подобного рода, потому что они позволяют предпринимать специфические действия при изменении свойства, не требуя написания явной логики С# в файле отделенного кода.

Далее приведена модифицированная разметка для стиля элементов управления типа TextBox, где обеспечивается установка фона желтого цвета, когда элемент TextBox получает фокус:

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*