2

Появился ряд вопросов при изучении WPF, надеюсь получить на них ответы:

  1. Вопрос, касающийся стилизации нескольких окон - вот есть 2 окна в приложении, каждое из окон имеет одинаковый стиль окна (стилизованные кнопки закрыть, свернуть и т.д), можно ли как-то вынести всю это стилизацию в отдельный файл ресурсов xaml и просто задать каждому из окон этот стиль:

<Window x:Class="example" Style="Мой стиль"/>

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

UPD: чтобы все работало, нужно добавить ContentPresenter в файле, где у вас прописан стиль для окон, что-то типо такого:

<Style x:Key="WindowStyle" TargetType="{x:Type Window}">
    <Setter Property="Template" x:Name="dsd">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Window}">
               <Grid>
               ...
               <ContentPresenter/> <!--элементы, которые вы будете добавлять на форму будут вставляться в этот участок кода-->
               </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>        
</Style>

Правильно ли так?

  1. Второй вопрос: оба окна имеют одинаковые методы, связанные с передвиганием окна за верхнюю панель, можно ли вынести их в отдельный абстрактный класс и наследоваться от него? прочитал, что в таком случае оба класса, которые будут наследоваться от него, должны быть без xaml.

Спасибо заранее)

SWR
  • 329
  • Для окон на сайте был пример, сейчас найду. – VladD Oct 03 '16 at 10:00
  • Вот: http://ru.stackoverflow.com/a/443963/10105. Можно закрывать как дубликат? – VladD Oct 03 '16 at 10:07
  • второй вопрос решился сам, после добавления ContentPresenter, так что методы видны теперь обоим окнам, можно закрывать) – SWR Oct 03 '16 at 10:18

0 Answers0