簡體   English   中英

WPF切換按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM