Местоположение запуска Windows из словаря ресурсов - PullRequest
2 голосов
/ 02 апреля 2012

Я пытаюсь настроить все мои окна, чтобы они открывались в центре экрана. Все мои окна используют файл стиля:

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

Итак, я только что вставил это свойство в словарь ресурсов:

    <Style x:Key="windowStyle" TargetType="Window">
         <Setter Property="WindowStartupLocation" Value="CenterScreen"/>
    </Style> 

Но это не работает. Я что-то упустил?

Ответы [ 4 ]

1 голос
/ 31 мая 2013

Вы не можете использовать стиль для определения WindowStartupLocation, это связано с тем, что это не свойство зависимости. Вы можете определить StaticResource в своем словаре ресурсов, который вы будете использовать в своих окнах:

<WindowStartupLocation x:Key="StartupLocation">CenterScreen</WindowStartupLocation>

, а затем используйте его так:

WindowStartupLocation="{DynamicResource StartupLocation}"
0 голосов
/ 22 февраля 2017

Чтобы каждый запуск каждого окна в центре экрана Добавить эту строку в App.xaml

<Application.Resources>
        <WindowStartupLocation x:Key="StartupLocation">CenterScreen</WindowStartupLocation>
</Application.Resources>

и добавить эту строку в теге окна

WindowStartupLocation="{StaticResource StartupLocation}"
0 голосов
/ 02 апреля 2012

если вы не хотите использовать неявные стили (как предложено bniwredyc), вы должны установить стиль явно:

<Window **Style="{StaticResource windowStyle}"**>
<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="../Styles/Mystyles.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>
0 голосов
/ 02 апреля 2012

Вам не нужно использовать атрибут x:Key.Ваш стиль должен выглядеть так:

<Style TargetType="{x:Type Window}">
    <Setter Property="WindowStartupLocation" Value="CenterScreen"/>
</Style> 
...