Как мне создать окно, от которого наследуются другие окна? - PullRequest
3 голосов
/ 25 марта 2012

у меня есть окно, подобное этому

<Window x:Class="pharmacy_Concept.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>

        <Button Content="Login" Height="34" HorizontalAlignment="Left" Margin="12,241,0,0" Name="loginbutton" VerticalAlignment="Top" Width="129" Click="loginbutton_Click" />
        <Button Content="Exit" Height="34" HorizontalAlignment="Left" Margin="362,241,0,0" Name="Exitbutton" VerticalAlignment="Top" Width="129" Click="Exitbutton_Click" />
    </Grid>
</Window>

Я хочу, чтобы каждое новое окно, которое я создал, имело этот макет. Должен ли я использовать словарь ресурсов для этого. Если да, то как? Или я должен сделать что-то еще

Это просто для понимания концепции. Я буду использовать изображения и этикетки позже.

1 Ответ

3 голосов
/ 25 марта 2012

Вы должны объявить ControlTemplate, который вы обычно определяете в ResourceDictionary.Например:

<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >

<Style x:Key="{x:Type Window}" TargetType="{x:Type Window}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Window}">
                <Grid Background="Red">
                    <Button Content="Login" Height="34" HorizontalAlignment="Left" Margin="12,241,0,0" Name="loginbutton" VerticalAlignment="Top" Width="129" Click="loginbutton_Click" />
                    <Button Content="Exit" Height="34" HorizontalAlignment="Left" Margin="362,241,0,0" Name="Exitbutton" VerticalAlignment="Top" Width="129" Click="Exitbutton_Click" />
                </Grid>

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

Затем вы должны добавить это к ресурсам приложения в app.xaml:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Window.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

И в вашем окне использовать это так:

 Style="{StaticResource {x:Type Window}}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...