Изменить рамку пользовательского стиля кнопки в WPF XAML - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь добиться этого с помощью кода XAML, но безрезультатно.

У меня есть следующий код XAML:

App.xaml

<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="Background" Value="Black"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Grid>
                    <Path Fill="{TemplateBinding Background}"
                          Data="M 0,22.5 22.5,0 27.5,5 10,22.5 27.5,40 22.5,45"/>
                    <Border x:Name="border"
                            BorderThickness="2"
                            BorderBrush="Red"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

И используйте это так:

<Button Style="{StaticResource ButtonStyle}" Height="100" Width="100"/>

Это дает мне это , но я хочу, чтобы красная кнопка была внутри кнопки.

Я пыталсядобавив это

<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="BorderThickness" Value="2"/>

вместо создания сетки, но теперь граница не отображается.

Полагаю, я мог бы создать другой путь, который бы действовал как граница, но есть ли более простой путь?

1 Ответ

0 голосов
/ 07 ноября 2019
<Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
    <Setter Property="Background" Value="Black"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Grid>
                    <Path Fill="{TemplateBinding Background}" Stroke="Red" StrokeThickness="3"
                      Data="M 0,22.5 22.5,0 27.5,5 10,22.5 27.5,40 22.5,45"/>
                    <Border x:Name="border"
                        BorderThickness="2"
                        BorderBrush="Red"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

пытается использовать свойства Stroke и StrokeThickness.

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