C# WPF GroupBox控件模板

C# WPF GroupBox控件模板,c#,wpf,C#,Wpf,我有一个代码,其中我有groupbox,在包装面板中有复选框,它实际上包装了groupbox,这是一个很好的工作要求。 但复选框内的边框也会将我的groupbox包装在我不想要的取消选中上。 您能建议我如何创建一个功能,使边框内的复选框不包裹我的groupbox吗。 您可以在EventTrigger中设置SourceName,因此它仅适用于正确的复选框。您还需要将EventTrigger从样式移动到GroupBox本身的触发器,以便使用复选框名称。 完整示例: <StackPanel&g

我有一个代码,其中我有groupbox,在包装面板中有复选框,它实际上包装了groupbox,这是一个很好的工作要求。 但复选框内的边框也会将我的groupbox包装在我不想要的取消选中上。 您能建议我如何创建一个功能,使边框内的复选框不包裹我的groupbox吗。


您可以在EventTrigger中设置SourceName,因此它仅适用于正确的复选框。您还需要将EventTrigger从样式移动到GroupBox本身的触发器,以便使用复选框名称。 完整示例:

<StackPanel>    
<GroupBox Margin="8,0" Height="150" BorderBrush="Transparent" Style="{StaticResource groupBoxStyle}">
  <GroupBox.Triggers>
    <EventTrigger RoutedEvent="CheckBox.Unchecked" SourceName="WrappingCheckBox">
      <BeginStoryboard>
        <Storyboard>
          <DoubleAnimation Storyboard.TargetProperty="Height" Duration="0:0:.2"  To="30" />
        </Storyboard>
      </BeginStoryboard>
    </EventTrigger>
    <EventTrigger RoutedEvent="CheckBox.Checked">
      <BeginStoryboard>
        <Storyboard>
          <DoubleAnimation Storyboard.TargetProperty="Height" Duration="0:0:.2" />
        </Storyboard>
      </BeginStoryboard>
    </EventTrigger>
  </GroupBox.Triggers>
  <GroupBox.Header>
    <WrapPanel >
      <CheckBox Name="WrappingCheckBox" IsChecked="True" VerticalAlignment="Center" />
      <Label Content="Volatility" Background="#00000000" Foreground="#FF0033FF" FontWeight="Bold" />
    </WrapPanel>
  </GroupBox.Header>
  <Border BorderBrush="Black" BorderThickness="1">
    <UniformGrid Columns="2">
      <Label Content="Spots"></Label>
      <TextBox AcceptsReturn="False" AcceptsTab="True" AllowDrop="True" IsTabStop="True" />
      <Label Content="Hist. references" />
      <TextBox AcceptsReturn="False" AcceptsTab="True" AllowDrop="True" IsTabStop="True" />
      <Label Content="Tenors" />
      <TextBox AcceptsReturn="False" AcceptsTab="True" AllowDrop="True" IsTabStop="True" />
      <Label Content="(5) Is there Value Plan? Yes/No" Margin="0,0,-42,0"  />
      <CheckBox Margin="0,5,0,0" Name="chkISvalue" HorizontalAlignment="Right" Width="84" Style="{x:Null}" />
    </UniformGrid>
  </Border>
</GroupBox>

<StackPanel>    
<GroupBox Margin="8,0" Height="150" BorderBrush="Transparent" Style="{StaticResource groupBoxStyle}">
  <GroupBox.Triggers>
    <EventTrigger RoutedEvent="CheckBox.Unchecked" SourceName="WrappingCheckBox">
      <BeginStoryboard>
        <Storyboard>
          <DoubleAnimation Storyboard.TargetProperty="Height" Duration="0:0:.2"  To="30" />
        </Storyboard>
      </BeginStoryboard>
    </EventTrigger>
    <EventTrigger RoutedEvent="CheckBox.Checked">
      <BeginStoryboard>
        <Storyboard>
          <DoubleAnimation Storyboard.TargetProperty="Height" Duration="0:0:.2" />
        </Storyboard>
      </BeginStoryboard>
    </EventTrigger>
  </GroupBox.Triggers>
  <GroupBox.Header>
    <WrapPanel >
      <CheckBox Name="WrappingCheckBox" IsChecked="True" VerticalAlignment="Center" />
      <Label Content="Volatility" Background="#00000000" Foreground="#FF0033FF" FontWeight="Bold" />
    </WrapPanel>
  </GroupBox.Header>
  <Border BorderBrush="Black" BorderThickness="1">
    <UniformGrid Columns="2">
      <Label Content="Spots"></Label>
      <TextBox AcceptsReturn="False" AcceptsTab="True" AllowDrop="True" IsTabStop="True" />
      <Label Content="Hist. references" />
      <TextBox AcceptsReturn="False" AcceptsTab="True" AllowDrop="True" IsTabStop="True" />
      <Label Content="Tenors" />
      <TextBox AcceptsReturn="False" AcceptsTab="True" AllowDrop="True" IsTabStop="True" />
      <Label Content="(5) Is there Value Plan? Yes/No" Margin="0,0,-42,0"  />
      <CheckBox Margin="0,5,0,0" Name="chkISvalue" HorizontalAlignment="Right" Width="84" Style="{x:Null}" />
    </UniformGrid>
  </Border>
</GroupBox>