2011-02-11 41 views
0

由於CheckBox控件在增加字體大小時不會增加複選框,因此我決定創建自己的變體(因爲它將用於觸摸屏)。將點擊事件委託給模板化控件

我有以下模板:

<ControlTemplate x:Key="YesNoCheckbox" TargetType="{x:Type CheckBox}"> 
    <Grid> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition/> 
      <ColumnDefinition/> 
     </Grid.ColumnDefinitions> 
     <Button Grid.Column="0" Width="100" Name="myButton"/> 
     <ContentPresenter Grid.Column="1" Margin="4,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Left" RecognizesAccessKey="True"/> 
    </Grid> 
    <ControlTemplate.Triggers> 
     <Trigger Property="IsChecked" Value="True"> 
      <Setter Property="Content" TargetName="myButton" Value="Ja"/> 
     </Trigger> 
     <Trigger Property="IsChecked" Value="False"> 
      <Setter Property="Content" TargetName="myButton" Value="Nei"/> 
     </Trigger> 
    </ControlTemplate.Triggers> 
</ControlTemplate> 

不過,我需要從按鈕的Click事件委託給複選框,使選中狀態選中/取消。

我是一個總新手,這可能很容易,但我沒有搜索到這些信息,可能是由於缺乏正確的關鍵字搜索。

我期待着您的迴音。

感謝,

斯特凡

回答

0

CheckBoxToggleButton本身和你想放置內的另一個按鈕,這是錯誤的。

CheckBox當它被點擊時自動更改其IsChecked。所以你不需要在裏面定義另一個按鈕。您需要做的是在CheckBox模板中定義一個可視圖形,該圖形在FontSize增加時將進行縮放,這將反映當前的CheckBox狀態。基本上,你需要修改默認樣式。

+0

爲什麼這是錯的?這和嵌套控件有什麼區別(例如名稱:)? – Vincent 2011-02-11 12:48:50