2010-12-05 11 views
6

チェックボックスの幅が含まれているグリッドセルの範囲まで伸びているようです。したがって、チェックボックスのラベルの右側にチェックを入れても、値は切り替えられます。チェックボックスの幅の値をハードコードしないで、ラベルやチェックボックスをクリックしたときにのみチェックボックスを切り替える方法はありますか?ラベル外でクリックしたときにwpfチェックボックスが選択された

答えて

4

列定義の幅を "自動"に設定すると、列はCheckBoxに合わせてサイズが変更されます。

ただし、レイアウトが壊れている可能性があります。

代替方法はCheckBoxStackPanelにラップすることです。あなたが最初のスクリーンショットからわかるように、第2によって示されるように、カラム幅いっぱいであることとは対照的に、

<Grid Margin="10,10,10,10" Name="grid1"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*"/> 
      <ColumnDefinition Width="*"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
     <TextBlock Text="Hello"/> 
     <StackPanel Grid.Column="1" Orientation="Horizontal"> 
      <CheckBox Content="Click Me"/> 
     </StackPanel> 
     <Button Grid.Column="2" Content="Press Me"/> 
    </Grid> 

CheckBoxのバウンディングボックスだけチェックし、ラベルの周りになりました。

正しい行動:
correct behaviour
誤った行動:
incorrect behaviour

3

それは実際にはそれを広げるかもしれません。 CheckBoxに背景を適用しようとすると、実際にどれだけ広いかがわかります。またHorizo​​ntalAlignmentで遊ぶ。

4

チェックボックスのデフォルトHorizontalAlignmentStretchです。 Left/Right/Centerに設定してみてください。

関連する問題