Неправильная настройка шаблона кнопки WPF - PullRequest
0 голосов
/ 12 мая 2010

Я создал шаблон кнопки, состоящий из рамки и предъявителя контента. Затем стиль оборачивается вокруг этого шаблона и применяется к кнопке. Однако, когда эта кнопка используется, она не несет значения для горизонтального и вертикального выравнивания. В конструкторе отображаются выравнивания, и кнопка находится в правильном месте, но когда я запускаю программу, кнопка имеет горизонтальное выравнивание = влево и вертикальное выравнивание = вправо. Есть идеи?
Вот код для шаблона:

<ControlTemplate TargetType="Button" x:Key="DefaultButtonTemplate">

    <Border CornerRadius="4"
            Background="{TemplateBinding Background}"
            BorderThickness="{TemplateBinding BorderThickness}"
            BorderBrush="{TemplateBinding BorderBrush}">
        <Grid>
            <ContentPresenter ContentSource="{TemplateBinding Content}" 
                    ContentTemplate="{TemplateBinding ContentTemplate}"
                    VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                    HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
        </Grid>
    </Border>
</ControlTemplate>

Вот код для стиля:

<Style TargetType="Button">
    <Setter Property="Background" Value="{DynamicResource WindowHeaderBrush}" />
    <Setter Property="BorderBrush" Value="{DynamicResource WindowBorderBrush}" />
    <Setter Property="Template" Value="{DynamicResource DefaultButtonTemplate}" />
    <Setter Property="BorderThickness" Value="1" />
    <Style.Triggers>
        <Trigger Property="IsMouseOver" Value="True">
            <Setter Property="Background" Value="{DynamicResource ButtonHoverBrush}" />
            <Setter Property="BitmapEffect" Value="{DynamicResource ButtonHoverGlow}" />
        </Trigger>
        <Trigger Property="IsPressed" Value="True">
            <Setter Property="Background" Value="{DynamicResource ButtonPressedBrush}" />
        </Trigger>
    </Style.Triggers>
</Style>

А вот код для кнопки:

<Button Name="button1" Height="31"  VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="0,0,10,10">Button</Button>

За файлом нет кода

Результатом этого кода является кнопка, которая появляется в верхнем левом углу родительской плоскости вверх по краю

1 Ответ

2 голосов
/ 12 мая 2010

я думаю, что линия

<Button Name="button1" Height="31"  VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="0,0,10,10">Button</Button>

должно быть

<Button Name="button1" Height="31"  VerticalContentAlignment="Bottom" HorizontalContentAlignment="Right" Margin="0,0,10,10">Button</Button>

или вы устанавливаете только выравнивание кнопки, а не содержание.

...