2013-04-23 4 views
0

Я довольно новичок в WPF и сижу здесь с моей книгой, пытаясь понять лучший подход к этому приложению.Каков наиболее экономичный способ реализации собственной границы окна и заголовка?

Строка заголовка не является частью клиентской области, поэтому я делаю свой собственный заголовок.

В каком виде было бы проще всего сделать это в каком-то ресурсе для применения ко всем новым окнам, которые я создаю?

<Application.Resources> 
    <Style x:Key="WindowTheme"> 
     <Setter Property="Window.WindowStyle" Value="None"/> 

    </Style> 
    <!--Would I create a user control here for the title bar/border and title bar buttons? Or would it be a style?--> 
</Application.Resources> 
+0

Было бы удивительным, если ресурс может уже содержать всю обработку событий код для максимизации, минимизации, закрытия, переиздание калибровка и перетаскивание! – Adrian

ответ

0

В WPF есть два способа использования стилей: именованных стили и напечатал стили. Именованный стиль имеет атрибут x:Key="...". Типированный стиль не имеет имени, но атрибут TargetType="..." (Rem: Именованные стили могут и очень часто иметь TargetType, так что с именами стилей и unnamed стилей будет более точным). Типизированные стили автоматически применяются ко всем элементам управления в области, которые имеют тип TargetType (а не производный тип).

<Style TargetType="{x:Type Window}"> 
    <Setter Property="Background" Value="Blue" /> 
</Style> 

Чтобы создать свое собственное окно, вы можете установить это шаблон недвижимости в UserControl в стиле:

<Style TargetType="{x:Type Window}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate> 

      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Профессиональный способ реализации управления шаблон для его реализации «с нуля», это означает, что вы не используете UserControl, который происходит от Window. Для этого вы определяете визуальное дерево окна и используете функцию WPF TemplateParts, чтобы определить, какая часть вашего шаблона управления отвечает за функциональность окна.

Вот учебник, который описывает довольно точно, что вы хотите сделать:

CodeProject tutorial

+0

Отлично! Благодаря!! – Adrian

Смежные вопросы