Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

16.07.2006 02:28 | Raiker

Скачать Изменение внешнего вида примечаний WPF
n/a mb - 1338 переходов
Вы, вероятно, думаете : «Примечания являются потрясающим и удобным инструментом, но зеленая тема StickyNote, вообще говоря, не подходит для моего приложения». Мы, может быть, так не думаем, но я все же покажу, как использовать форматирование (Styling), чтобы изменить внешний вид StickyNotes в вашем приложении. Сначала Я приведу несколько простых примеров того, как вы можете настроить стиль отображения, а затем вкратце расскажу как полностью его изменить.

Если вы не любите читать (или просто хотите получить исходный код), вы можете загрузить рассматриваемое приложение в конце статьи.

Основы: Модифицируем стиль StickyNote
Присмотритесь к доступным свойствам класса StickyNoteControl. Используя эти свойства, Вы можете управлять различными аспектами внешнего вида и режима работы Note при помощи операторов Setter и Trigger.

Изменение цвета
Если вы хотите изменить цвет области с каким-либо содержимом (нарпимер, RichTextBox или InkCanvas), присвойте необходимое значение свойству Background:

<Style x:Key="OverrideBackground" TargetType="{x:Type StickyNoteControl}">
    <Setter Property="Background" Value="Yellow"/>
  </Style>


ПРИМЕЧАНИЕ: это действие не изменит заголовок или размер компонента. Для изменения внешнего вида TitleBar и других частей, содержащих градиент необходимо полностью заменить стиль (см. ниже).

Изменение режима работы StickyNote
Используя открытые свойства класса StickyNoteControl и оператора Trigger, Вы можете управлять поведением (режимом работы) StickyNote. Ниже представлен пример такого использования, в котором размер заметки уменьшается вдвое, и принимающей полный размер после фокусировки мыши на ней.

<Style
x:Key="OverrideSimpleBehavior"
TargetType="{x:Type StickyNoteControl}">
    <!—Установка размера заметки по умолчанию. -->
    <Setter Property="RenderTransform">
      <Setter.Value>
        <ScaleTransform ScaleX=".5" ScaleY=".5"/>
      </Setter.Value>
    </Setter>
    <!—Добавление триггера, изменяющего размер после клика мыши.-->
    <Style.Triggers>     
      <Trigger Property="StickyNoteControl.IsActive" Value="True">
        <Setter Property="RenderTransform">
          <Setter.Value>
            <ScaleTransform ScaleX="1" ScaleY="1"/>
          </Setter.Value>
        </Setter>
      </Trigger>
    </Style.Triggers>
  </Style>

er>
</Style.Triggers>
</Style>[/code]
Более сложный уровень: Замена стиля StickyNote
Если изменение режима работы Note достигается простым добавлением нескольких сеттеров и триггеров, то для значительных изменения внешнего вида Вам надо заменить полностью весь стиль оформления.

Основы создания стиля
При замене стиля существует несколько ограничений. Во-первых, необходимо наличие компонента RichTextBox и в Ink note. Во-вторых, RichTextBox и InkCanvas должны быть объявлены как PART_ContentControl. Следующий пример показывает тот минимум, который необходим для создания стиля для класса StickyNoteControl, который поддерживает режимы Ink и Text:

[code]<Style x:Key="MinimumStyle" TargetType="{x:Type StickyNoteControl}">
<!-- Override default style completely -->
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Width" Value="100" />
<Setter Property="Height" Value ="100" />
<Style.Triggers>
<Trigger
Property="StickyNoteControl.StickyNoteType"
Value="{x:Static StickyNoteType.Ink}">
<!-- Custom template that only contains required controls -->
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<InkCanvas
Name="PART_ContentControl"
Background="LightYellow" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
<Trigger
Property="StickyNoteControl.StickyNoteType"
Value="{x:Static StickyNoteType.Text}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<RichTextBox
Name="PART_ContentControl"
Background="LightYellow"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>[/code]
Небо – это предел (почти)
В исходниках вы можете просмотреть полный проект создания стиля StickyNote. Аналогично ему Вы можете создать тот стиль, который Вам нужен. Ну а теперь перечислим ограничения:

- Нет возможности изменить стиль привязки StickyNote.
- Невозможно изменить программное поведение заметки – это не поддерживается методом обработки сообщений элемента StickyNote, то есть Вы не можете добавлять код или изменять обработчик режима работы.
- Невозможно изменить основное объявление StickyNote – изменение только касается внешнего вида и поведения элемента управления, но, возможно, в будущем можно будет управлять стилем ввода Text или Ink.

Надеюсь, эта информация помогла Вам понять основы изменения внешнего вида элемента StickyNote в ваших приложениях. Я буду с интересом читать о Ваших опытах в данном направлении и смотреть на Ваши творения.

Источник: http://blogs.msdn.com/mehlhorn/
Перевод: RLV

Комментарии

Комментариев нет...
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.041 секунд (Общее время SQL: 0.015 секунд - SQL запросов: 51 - Среднее время SQL: 0.0003 секунд))
Top.Mail.Ru