2013-11-22 42 views
3

我有一個組框名稱「組框」。我想要禁用整個組框名稱包含組框名稱。 我附上image.I希望它會清除我使用的IsEnabled =「假」財產情況enter image description here禁用WPF中包含組框名稱的組框名稱

<GroupBox Name="groupBox" Grid.Column="0" Grid.Row="1" Margin="2,0,0,0" Header="GroupBox" IsEnabled="False"> 
      <Grid Margin="10,0,0,0"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition></ColumnDefinition> 

       </Grid.ColumnDefinitions> 
       <Grid.RowDefinitions> 
        <RowDefinition Height=".250*"/> 
        <RowDefinition Height=".250*"/> 
       </Grid.RowDefinitions> 
       <RadioButton Name="RadioBtn1" VerticalAlignment="Center" ToolTipService.ShowOnDisabled="True" Grid.ColumnSpan="3" Height="14.63">OP1</RadioButton> 
       <RadioButton Name="RadioBtn2" Grid.Row="1" VerticalAlignment="Center" ToolTipService.ShowOnDisabled="True" Grid.ColumnSpan="3" Height="14.63">OP2</RadioButton> 

      </Grid> 
     </GroupBox> 

。但它只適用於groupBox的內容(如果我錯了,請糾正我的問題!) 現在我希望圓形區域也應該被禁用。

回答

5

一個簡單Trigger可以爲你做這個XAML(沒有任何代碼):

<GroupBox Name="groupBox" Grid.Column="0" Grid.Row="1" Margin="2,0,0,0" Header="GroupBox" IsEnabled="False"> 
    <GroupBox.Style> 
     <Style> 
      <Style.Triggers> 
       <Trigger Property="Control.IsEnabled" Value="False"> 
        <Setter Property="Control.Foreground" Value ="#FF6D6D6D" /> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </GroupBox.Style> 
    <Grid Margin="10,0,0,0"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition /> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height=".250*"/> 
      <RowDefinition Height=".250*"/> 
     </Grid.RowDefinitions> 
     <RadioButton Name="RadioBtn1" VerticalAlignment="Center" ToolTipService.ShowOnDisabled="True" Grid.ColumnSpan="3" Height="14.63">OP1</RadioButton> 
     <RadioButton Name="RadioBtn2" Grid.Row="1" VerticalAlignment="Center" ToolTipService.ShowOnDisabled="True" Grid.ColumnSpan="3" Height="14.63">OP2</RadioButton> 
    </Grid> 
</GroupBox> 
0

您可以更改顏色與此:

<GroupBox> 
    <GroupBox.Header> 
     <Label Foreground="Gray">My Group Header Label</Label> 
    </GroupBox.Header> 
</GroupBox> 

你可以改變顏色與轉換器:

<Window.Resources> 
      <local:BrushColorConverter x:Key="BConverter"></local:BrushColorConverter> 
</Window.Resources> 
... 
<GroupBox> 
    <GroupBox.Header> 
     <Label Foreground="{Binding Path=IsEnabled, Converter={StaticResource BConverter}}">My Group Header Label</Label> 
    </GroupBox.Header> 
</GroupBox> 

轉換代碼

public class BrushColorConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      if ((bool)value) 
      { 
       { 
        return System.Windows.Media.Colors.Gray; 
       } 
      } 
      return System.Windows.Media.Colors.Black; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      throw new NotImplementedException(); 
     } 

    } 
2

簡單地使用觸發

<GroupBox Name="groupBox" Grid.Column="0" Grid.Row="1" Margin="2,0,0,0" Header="GroupBox" IsEnabled="False"> 
    <Grid Margin="10,0,0,0"> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition> 
     </ColumnDefinition> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height=".25*"/> 
     <RowDefinition Height=".25*"/> 
    </Grid.RowDefinitions> 
    <RadioButton Name="RadioBtn1" Height="14.63" Grid.ColumnSpan="3" VerticalAlignment="Center" ToolTipService.ShowOnDisabled="True">OP1 
    </RadioButton> 
    <RadioButton Name="RadioBtn2" Height="14.63" Grid.ColumnSpan="3" Grid.Row="1" VerticalAlignment="Center" ToolTipService.ShowOnDisabled="True">OP2 
    </RadioButton> 
    </Grid> 
    <GroupBox.Style> 
    <Style TargetType="GroupBox"> 
     <Setter Property="HeaderTemplate"> 
     <Setter.Value> 
      <DataTemplate> 
      <TextBlock x:Name="header" Text="{Binding}"/> 
      <DataTemplate.Triggers> 
       <Trigger Property="IsEnabled" Value="False"> 
       <Setter TargetName="header" Property="Foreground" Value="Gray"/> 
       </Trigger> 
      </DataTemplate.Triggers> 
      </DataTemplate> 
     </Setter.Value> 
     </Setter> 
    </Style> 
    </GroupBox.Style> 
</GroupBox>