AdornerDecorator для WPF Window меняет смещение элементов управления - PullRequest
0 голосов
/ 05 февраля 2011

У меня есть следующее определение окна

<Window x:Class="MyWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Style="{StaticResource ShapedWindow}"
        Title="Title">
    <Grid Name="grid1" />
</Window>

со следующим определением стиля и шаблона

<Style x:Key="ShapedWindow" TargetType="{x:Type Window}">
        <Setter Property="AllowsTransparency" Value="True"></Setter>
        <Setter Property="WindowStyle" Value="None"></Setter>
        <Setter Property="Background" Value="Transparent"></Setter>
        <Setter Property="MinWidth" Value="300" />
        <Setter Property="MinHeight" Value="300" />
        <Setter Property="Template" Value="{StaticResource ShapedWindowTemplate}"></Setter>
</Style>

<ControlTemplate x:Key="ShapedWindowTemplate" TargetType="{x:Type Window}">
    <!--<AdornerDecorator>
        <ContentPresenter />
    </AdornerDecorator>-->
</ControlTemplate>

, которое выдает следующее окно в конструкторе

Window before control template

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

enter image description here

1 Ответ

1 голос
/ 06 февраля 2011

Я видел такое поведение в VS2010 Designer пару раз, и я уверен, что это ошибка.

С пустым шаблоном визуализировать нечего, поэтому вы вообще не сможете видеть Grid. Когда вы удаляете комментарии в ControlTemplate, эффект, скорее всего, является ошибкой в ​​VS2010 Designer, которая происходит каждый раз, когда вы устанавливаете Template для Window, так что я не думаю, что вы на самом деле отсутствует что-нибудь.
Это произойдет, даже если вы используете шаблон окна по умолчанию, созданный в Expression Blend

Вот сравнение VS2010 Designer и Expression Blend 4 с использованием шаблона по умолчанию для Window, так что, как вы можете видеть, это действительно похоже на ошибку

enter image description here

Примечание. То же самое происходит, когда вы используете набор Template для GroupBox, даже если установленный шаблон ControlTemplate идентичен шаблону по умолчанию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...