Добавление линии к фигуре в XAML - PullRequest
0 голосов
/ 18 марта 2012

Я изменяю внешний вид кнопки в своем коде 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 Ответ

1 голос
/ 18 марта 2012

Вы хотите это в своем стиле кнопки? Я смог добиться этого с помощью кода шаблона элемента управления 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...