2017-02-23 54 views
1

Я использую C# WPF ApplicationC# WPF Кнопка должна отображаться как выбранный

мне нужна ваша помощь. Если я нажму на кнопку, она должна быть выбрана, но если я сейчас нажму на другую кнопку, ее следует выбрать, а другую кнопку выбрать нельзя. Он должен показывать, где находится пользователь. Кнопка должна быть выбрана до тех пор, пока не будет нажата другая кнопка.

Но когда вы идете с помощью мыши, нормальная мышь над эффектом должна наступить.

<Window x:Name="windowsForm" x:Class="Vorschau.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:Vorschau" 
     mc:Ignorable="d" 
     Title="Vorschaukomponente" Height="514.583" Width="805.208" FontFamily="Century Gothic" WindowStartupLocation="Manual" BorderThickness="0" ResizeMode="NoResize" WindowStyle="None" Icon="C:\Users\user\Documents\Visual Studio 2015\Projects\Vorschau\Vorschau\img\coordinates.ico" Background="{x:Null}" AllowsTransparency="True"> 
    <Window.Resources> 

     <Style x:Key="border_res" TargetType="{x:Type Border}"> 
      <Setter Property="Background" Value="#3A3A3B" /> 
      <Setter Property="CornerRadius" Value="10" /> 
     </Style> 
    </Window.Resources> 

    <Border Style="{StaticResource border_res}"> 
     <Grid> 
      <Canvas HorizontalAlignment="Left" Height="60" VerticalAlignment="Top" Width="185" Background="#FFE57E31"> 
       <Canvas Height="64" Canvas.Top="451" Width="185" Background="#FF2C373F"> 
        <Label x:Name="lbCopyright" Content="© Name 2017" Canvas.Left="10" Canvas.Top="29" Width="121" Foreground="#FF1B1D1F"/> 
       </Canvas> 
       <Canvas Height="391" Canvas.Top="60" Width="185" Background="#FF37424A"> 
        <Button x:Name="btVorschau" Content="Vorschau" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="185" Height="50" Foreground="LightGray" FontSize="16" 
       HorizontalContentAlignment="Left" BorderBrush="{x:Null}" Click="Button_Click"> 
         <Button.Style> 
          <Style TargetType="{x:Type Button}"> 
           <Setter Property="Background" Value="#FF37424A"/> 
           <Setter Property="Template"> 
            <Setter.Value> 
             <ControlTemplate TargetType="{x:Type Button}"> 
              <Border Background="{TemplateBinding Background}"> 
               <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
              </Border> 
             </ControlTemplate> 
            </Setter.Value> 
           </Setter> 
           <Style.Triggers> 
            <Trigger Property="IsMouseOver" Value="True"> 
             <Setter Property="Background" Value="#FF303B43"/> 
             <Setter Property="Foreground" Value="Red"/> 
            </Trigger> 
           </Style.Triggers> 
          </Style> 
         </Button.Style> 
        </Button> 
        <Button x:Name="btEinstellung" Content="Einstellung" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="185" Height="50" Foreground="LightGray" FontSize="16" 
         HorizontalContentAlignment="Left" BorderBrush="{x:Null}" Canvas.Top="50" Click="btEinstellung_Click"> 
         <Button.Style> 
          <Style TargetType="{x:Type Button}"> 
           <Setter Property="Background" Value="#FF37424A"/> 
           <Setter Property="Template"> 
            <Setter.Value> 
             <ControlTemplate TargetType="{x:Type Button}"> 
              <Border Background="{TemplateBinding Background}"> 
               <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
              </Border> 
             </ControlTemplate> 
            </Setter.Value> 
           </Setter> 
           <Style.Triggers> 
            <Trigger Property="IsMouseOver" Value="True"> 
             <Setter Property="Background" Value="#FF303B43"/> 
             <Setter Property="Foreground" Value="Red"/> 
            </Trigger> 
           </Style.Triggers> 
          </Style> 
         </Button.Style> 
        </Button> 
       </Canvas> 
       <Canvas Height="60" Canvas.Left="185" Width="618" Background="#FFEEE9ED"> 
        <Label x:Name="lbClose" Content="X" Canvas.Left="578" FontSize="20" MouseDoubleClick="lbClose_MouseDoubleClick"/> 
        <Label x:Name="lbMinimize" Content="-" Canvas.Left="556" FontSize="22" Canvas.Top="-2" MouseDoubleClick="lbMinimize_MouseDoubleClick"/> 
        <Label x:Name="lbWhereIAm" Content="Label" Canvas.Left="10" Canvas.Top="15" Width="162" FontSize="20"/> 
       </Canvas> 
       <Canvas x:Name="canvasContent" Height="455" Canvas.Left="185" Canvas.Top="60" Width="618" Background="#FFD1CFD0"> 
        <TabControl x:Name="tabControl" Height="241" Canvas.Left="93" Canvas.Top="87" Width="440" SelectedIndex="0" ScrollViewer.VerticalScrollBarVisibility="Disabled"> 
         <TabItem x:Name="tabitem1" Header="TabItem"> 
          <Grid Background="#FFE5E5E5"> 
           <Label x:Name="label1" Content="Label" HorizontalAlignment="Left" Margin="99,95,0,0" VerticalAlignment="Top" Background="#FF2387FF"/> 
          </Grid> 
         </TabItem> 
         <TabItem x:Name="tabitem2" Header="TabItem" ScrollViewer.VerticalScrollBarVisibility="Disabled"> 
          <Grid Background="#FFE5E5E5"> 
           <Label x:Name="label" Content="Label" HorizontalAlignment="Left" Margin="138,124,0,0" VerticalAlignment="Top" Background="#FFF70000"/> 
          </Grid> 
         </TabItem> 
        </TabControl> 
       </Canvas> 
       <Image x:Name="image" Height="38" Canvas.Left="10" Canvas.Top="10" Width="38" Source="C:\Users\user\Documents\Visual Studio 2015\Projects\Vorschau\Vorschau\img\coordinatesWhite.png"/> 
       <Label x:Name="lbLogoname" Content="Vorschaukomponente" Canvas.Left="37" Canvas.Top="10" Width="143" FontWeight="Bold" Foreground="White"/> 
      </Canvas> 
     </Grid> 
    </Border> 
</Window> 
+2

Не используйте кнопку. Найдите радиокнопку или группу переключающих кнопок. – gdir

ответ

0

вы можете использовать Listbox, чтобы показать группу кнопок

Решение 1:

<Style TargetType="{x:Type ListBox}"> 
    <Setter Property="ListBox.ItemTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
       <ToggleButton Content="{Binding}" 
           IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}" 
       /> 
      </DataTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Решение 2

С помощью кнопки радио изменить шаблон

<RadioButton Content="Point" > 
    <RadioButton.Template> 
     <ControlTemplate> 
      <ToggleButton IsChecked="{Binding IsChecked, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}" 
          Content="{Binding Content, RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay}"/> 
     </ControlTemplate> 
    </RadioButton.Template> 
</RadioButton>