WPF形状按钮 - Visaul Studio / Blend

时间:2017-08-02 12:24:41

标签: c# wpf

我最近开始学习WPF,但遇到了一个小问题。我正在尝试创建一个符合我在Photoshop中制作的基本按钮形状(透明)。

这是形状(它就像一个盒子,每侧有一个三角形)。 http://prntscr.com/g3esel

如果在Blend中更容易做到并将其实现为视觉,那么我很想知道如何。

BUTTON STYLE:

$scope.facultymembers.splice(index,1);

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要为Button创建ControlTemplate。这可以在Blend和Visual Studio中完成。我是在VS2015做的。 这是你的代码:

但是,对于未来,请在发布问题之前尝试some work yourself。包含足够的代码以允许其他人重现问题。有关此方面的帮助,请阅读如何创建Minimal, Complete, and Verifiable example

<Grid Background="Red">
    <Button Height="52" Opacity="0.8">
        <Button.Style>
            <Style TargetType="Button">
                <Setter Property="Background">
                    <Setter.Value>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" >
                            <GradientStop Color="#053755" Offset="0" />
                            <GradientStop Color="#053755" Offset="0.5" />
                            <GradientStop Color="#061F31" Offset="0.5" />
                            <GradientStop Color="#061F31" Offset="1.0" />
                        </LinearGradientBrush>
                    </Setter.Value>
                </Setter>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="Auto"/>
                                    <ColumnDefinition Width="*"/>
                                    <ColumnDefinition Width="Auto"/>
                                </Grid.ColumnDefinitions>
                                <Border Margin="-1,0" Grid.Column="1" Background="{TemplateBinding Background}"  BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0,1">
                                    <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center" Content="{TemplateBinding Content}"/>
                                </Border>
                                <Path Fill="{TemplateBinding Background}" Data="M13,0 0,25 0,27 13,52 13,52" Stroke="{TemplateBinding BorderBrush}" Width="13" Stretch="Fill" ClipToBounds="True"/>
                                <Path Grid.Column="2" Data="M0,0 13,25 13,27 0,52" Stroke="{TemplateBinding BorderBrush}" Fill="{TemplateBinding Background}" Width="13" Stretch="Fill" ClipToBounds="True"/>
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Button.Style>
    </Button>
</Grid>