在XAML中为线条添加线条

时间:2012-03-17 23:12:55

标签: wpf xaml

我正在使用六边形修改我的XAML代码中的按钮视觉外观。现在,我想在六边形的两个外边缘添加2条线,如下图所示:

https://skydrive.live.com/redir.aspx?cid=204df65b0e6e1655&resid=204DF65B0E6E1655!117&parid=204DF65B0E6E1655!107&authkey=!AEzKZRmwMNhBWxM

有人能告诉我们如何以及在何处添加它?我的代码是这样的

    <Page.Resources>
    <Style TargetType="Button">   
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Canvas>
                        <Polygon Canvas.Top="30"  Points=
                     "430,0 
                     400,32
                     -30,32
                     -60,0
                     -30,-32
                     400,-32"
             Stroke="Brown" StrokeThickness="10"/>
                        <ContentPresenter Canvas.Left="80" Foreground="White" FontSize="40"></ContentPresenter>
                    </Canvas>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Page.Resources>

<Grid Background="Black">
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
    </Grid.ColumnDefinitions>

    <Button Grid.Row="1" Margin="40,-100 0,-50" HorizontalAlignment="Center">Hello World</Button>    

</Grid>

我无法将线路连接到这些边缘并一直传播到页面末端。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您想在按钮样式中使用此功能吗?我能够通过下面的XAML按钮控制模板代码实现这一点。

我将分隔符放在网格中,然后在它们上面放置矩形以向图像添加笔划 我还在多边形上添加了2的上边距以与矩形对齐。

<ControlTemplate TargetType="Button">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition/>
                            <ColumnDefinition Width="500"/>
                            <ColumnDefinition />
                        </Grid.ColumnDefinitions>
                        <Rectangle Fill="White" Grid.Column="0"/>
                        <Rectangle Fill="White" Grid.Column="2"/>
                         <Separator Background="White" Grid.Column="0"/>
                        <Separator Background="White" Grid.Column="2"/>
                        <Canvas Grid.Column="1" Margin="64,2,0,0">
                            <Polygon Points=
                 "430,0 
                 400,32
                 -30,32
                 -60,0
                 -30,-32
                 400,-32"
         Stroke="Brown" StrokeThickness="10"/>
                          <ContentPresenter Canvas.Left="80" Foreground="White" FontSize="40"/>

                        </Canvas>
                    </Grid>
                </ControlTemplate>