将形状映射到另一个按钮

时间:2017-04-03 12:28:21

标签: c# wpf xaml path

<Path Data="M0.5,0 L0.5,1 M0,0.5 L1,0.5"
      StrokeThickness="4"
      Stretch="Fill"
      Stroke="Blue" />

如果按钮是窗口中唯一的东西,这将在按钮上绘制一个加号, 但是如何将路径映射到此按钮?

<ControlTemplate x:Key="BT_SIGN" TargetType="{x:Type Button}">

        <Grid Cursor="None" Margin="0,0,1.333,0">
            <Grid.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="Black" Offset="0"/>
                    <GradientStop Color="#FF1E8CF3" Offset="1"/>
                </LinearGradientBrush>

            </Grid.Background>
        </Grid>
    </ControlTemplate>
<Button           
        Grid.Column="3" 
        HorizontalAlignment="Left" 
        Height="44.8" 
        Width="75.2" 
        Margin="22.32,24.6,0,0" 
        VerticalAlignment="Top"
        Template="{DynamicResource BT_SIGN}">
    </Button>

2 个答案:

答案 0 :(得分:2)

尝试此操作,即在模板中添加<ContentPresenter />并将Content属性设置为Path

<ControlTemplate x:Key="BT_SIGN" TargetType="{x:Type Button}">
    <Grid Cursor="None" Margin="0,0,1.333,0">
        <Grid.Background>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="Black" Offset="0"/>
                <GradientStop Color="#FF1E8CF3" Offset="1"/>
            </LinearGradientBrush>
        </Grid.Background>
        <ContentPresenter />
    </Grid>
</ControlTemplate>

<Button           
    Grid.Column="3" 
    HorizontalAlignment="Left" 
    Height="44.8" 
    Width="75.2" 
    Margin="22.32,24.6,0,0" 
    VerticalAlignment="Top"
    Template="{DynamicResource BT_SIGN}">
        <Path Data="M0.5,0 L0.5,1 M0,0.5 L1,0.5"
            StrokeThickness="4"
            Stretch="Fill"
            Stroke="Blue" />
</Button>

答案 1 :(得分:1)

只需在按钮标记内设置该特定按钮的路径。

<Button           
    Grid.Column="3" 
    HorizontalAlignment="Left" 
    Height="44.8" 
    Width="75.2" 
    Margin="22.32,24.6,0,0" 
    VerticalAlignment="Top"
    Template="{DynamicResource BT_SIGN}">

    <Path Data="M0.5,0 L0.5,1 M0,0.5 L1,0.5"
  StrokeThickness="4"
  Stretch="Fill"
  Stroke="Blue" />

</Button>