[英]WPF togglebutton
我有一個自定義WPF按鈕的問題-每當我單擊它時,它都會收到一個click事件,但似乎沒有切換(當我單擊另一個按鈕時,不會停下來)。 我已經盡力想了一切,但仍然無法正常工作。
我注意到的一件奇怪的事情是,當我在MouseDown處理程序中放置一個斷點並按F5繼續該點時,按鈕被切換並保持按下狀態。 這使我相信這是某種焦點問題?
<ToggleButton Name="ToggleButton" PreviewMouseDown="ToggleButton_MouseDown_1" IsThreeState="False">
<StackPanel Orientation="Vertical">
<Label Content="Single" FontSize="15" FontWeight="Medium"/>
<Label Content="Speaker"/>
</StackPanel>
</ToggleButton>
private void ToggleButton_MouseDown_1(object sender, MouseButtonEventArgs e)
{
ToggleButton.IsChecked = !ToggleButton.IsChecked;
}
private void ToggleButton_MouseDown_1(object sender, MouseButtonEventArgs e)
{
ToggleButton.IsChecked = !ToggleButton.IsChecked;
}
救命? :)
正如@Nick在他的評論中所說,只需完全刪除事件處理程序PreviewMouseDown="ToggleButton_MouseDown_1"
,它就可以正常工作。
如果不是這種情況,則必須包含其他導致問題的代碼。
聽起來像您想要一組單選按鈕的功能,但看起來像一堆切換按鈕的外觀。 在這種情況下,使用繼承的Control.Template屬性非常方便:
在頁面資源中,您可以添加:
<Style TargetType="RadioButton">
<Setter Property="Template">
<Setter.Value>
<ContentTemplate>
<ToggleButton Content="{TemplateBinding Content}" IsChecked="{TemplateBinding IsChecked}"/>
</ContentTemplate>
</Setter.Value>
</Setter>
</Style>
然后在您的代碼中:
<RadioButton Content="MyContent" GroupName="MyGroup"/>
這將使對象看起來像切換按鈕,但是當您從同一組中選擇某項(例如RadioButton)時取消選擇。 您可以進一步修改模板中的ToggleButton,直到獲得所需的外觀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.