WPF如何以“L”形式制作按钮

时间:2016-12-09 20:44:44

标签: c# wpf templates button styles

我希望我的按钮具有字母“L”的形状,如图Simple Paint Example所示。我能找到的唯一例子是你想要按钮是圆的还是像柠檬一样。我知道我需要使用模板,但我究竟不明白。

该代码位于App.xaml中,供全球使用。

<!--#region LButton-->
    <ControlTemplate x:Key="LButton" TargetType="Button">
        <Grid Width="100" Height="100">
            <Border BorderThickness="1" Grid.Row="0" Grid.ColumnSpan="2" BorderBrush="Black" Background="LightGreen">
               <TextBlock Text="{TemplateBinding Button.Content}" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="40"/>
            </Border>
        </Grid>
    </ControlTemplate>
<!--#endregion-->

我知道我可以添加CornerRadius =“30,30,30,30”按钮有圆角。

谢谢你的帮助。最诚挚的问候Shazzar

2 个答案:

答案 0 :(得分:0)

也许这可以帮到你:

<UserControl x:Class="Test.LButton"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:Test"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
          <Grid.RowDefinitions>
              <RowDefinition></RowDefinition>
              <RowDefinition></RowDefinition>
          </Grid.RowDefinitions>
          <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Button Name="upButton" Grid.ColumnSpan="3" Grid.RowSpan="1" Margin="0" BorderThickness="0"></Button>
        <Button Grid.Row="1" Grid.ColumnSpan="2" Margin="0" BorderThickness="0" Background="{Binding Background, ElementName=upButton}"></Button>
    </Grid>
</UserControl>

我创建了两个按钮,一个是向上部分,另一个用于向下部分,然后我在两个按钮之间使用绑定以获得相同的样式。

我认为您只能使用一个按钮创建 LButton

答案 1 :(得分:0)

这可以通过覆盖控制模板来完成。这是一个非常粗略的例子,可以帮助您入门。

编辑将路径更新为L形

    <Button >
        <Button.Template>
            <ControlTemplate>
                <Border>
                    <Grid>
                        <Polygon Points="300,200 200,200 200,300 250,300 250,250 300,250" Fill="Purple" />
                    </Grid>
                </Border>
            </ControlTemplate>
        </Button.Template>
    </Button>