Как сделать кликабельные цветные области с закругленными углами в WPF, Button или Border / Textarea? - PullRequest
0 голосов
/ 26 января 2009

Я хочу иметь четыре цветных области, которые можно нажимать. Я могу использовать TextBlock в Border, чтобы получить цветные области, но тогда ни у одного из них нет события Click. Так что я могу сделать все это кнопкой, но тогда у нее нет закругленных углов, и я не могу изменить фон.

Каков рекомендуемый способ сделать это, вот что у меня так далеко:

<Window x:Class="WpfApplication6.Window7"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window7" Height="300" Width="300">
    <UniformGrid>
        <UniformGrid.Resources>
            <Style TargetType="{x:Type TextBlock}">
                <Setter Property="FontSize" Value="20"/>
                <Setter Property="HorizontalAlignment" Value="Center"/>
                <Setter Property="VerticalAlignment" Value="Center"/>
            </Style>
        </UniformGrid.Resources>
        <Button BorderThickness="1px" Margin="10" BorderBrush="Blue" CornerRadius="33" Background="Orange">testing1</Button>
        <Border BorderThickness="1px" Margin="10" BorderBrush="Blue" CornerRadius="10" Background="Yellow">
            <TextBlock>testing2</TextBlock>
        </Border>
        <Border BorderThickness="1px" Margin="10" BorderBrush="Blue" CornerRadius="10" Background="LightBlue">
            <TextBlock>testing3</TextBlock>
        </Border>
        <Border BorderThickness="1px" Margin="10" BorderBrush="Blue" CornerRadius="10" Background="LightGreen">
            <TextBlock>testing4</TextBlock>
        </Border>
    </UniformGrid>
</Window>

Ответы [ 2 ]

2 голосов
/ 26 января 2009

Вы должны определить пользовательский шаблон для своей кнопки

Например:

<UniformGrid>
  <UniformGrid.Resources>
    <ControlTemplate x:Key="buttonTemp">
      <Border Margin="10" CornerRadius="10" Background="Yellow">
        <TextBlock Text="{TemplateBinding Button.Content}"/>
      </Border>
    </ControlTemplate>
  </UniformGrid.Resources>
  <Button Template="{StaticResource buttonTemp}">testing1</Button>
</UniformGrid>

См. Также http://mark -dot-net.blogspot.com / 2007/07 / creation-custom-wpf-button-template-in.html

0 голосов
/ 26 января 2009

Полагаю, вы тоже можете сделать что-то подобное, хотя я не пробовал.

<Border CornerRadius="5" ButtonBase.Click="ButtonClickHandler" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...