mahapps SplitButton展开点击

时间:2017-08-28 10:25:32

标签: mahapps.metro

我在WPF(C#)中使用绑定的项目源定义了一个SplitButton。

只有当用户点击SplitButton右侧的箭头时,才会展开项目列表。

如何在用户点击SplitButton区域时展开列表?

我尝试处理click事件并设置属性IsExpanded = true,但它会在一秒钟后自动消失。

<Controls:SplitButton Name="SplitButton_Test"
              Width="100"
              HorizontalAlignment="Left"
              HorizontalContentAlignment="Left"
              ItemsSource="{Binding Dictionary_Test}"
              DisplayMemberPath="Value"
              SelectedValuePath="Key"
              Click="Test_Click">
    <Controls:SplitButton.Icon>
        <iconPacks:PackIconMaterial Margin="6" Kind="Alert" />
    </Controls:SplitButton.Icon>
</Controls:SplitButton>

private void Test_Click(object sender, RoutedEventArgs e)
{
    if (SplitButton_Test.IsExpanded == false)
    {
        e.Handled = true;
        SplitButton_Test.IsExpanded = true; //Doesn't work, closes automatically after 1 second
    }
}

1 个答案:

答案 0 :(得分:0)

MahApps中的这段代码正在关闭它:

 //Make popup close even if no selectionchanged event fired (case when user select the save item as before)
    void ListBoxPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        var item = ContainerFromElement(_listBox, e.OriginalSource as DependencyObject) as ListBoxItem;
        if (item != null)
        {
            IsExpanded = false;
        }
    }

目前位于https://github.com/MahApps/MahApps.Metro/blob/develop/src/MahApps.Metro/MahApps.Metro.Shared/Controls/SplitButton.cs#L339

您需要删除该事件处理程序。怎么样?那是另外一个问题。

相关问题