2017-08-28 4 views
2

バインドされたアイテムソースを持つWPF(C#)でSplitButtonを定義しました。mahapps SplitButtonがクリックで拡大

スプリットボタンの右側にある矢印をクリックした場合にのみ、アイテムリストが展開されます。

ユーザーがSplitButton領域をクリックしたときにリストを展開する方法はありますか?

私はclickイベントを処理し、プロパティIsExpanded = trueを設定しようとしましたが、1秒後に自動的に消えます。

<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 
    } 
} 

答えて

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であなたはそのイベントハンドラを削除する必要があります。どうやって?それはまったく別の質問です。

+0

ありがとうございます!どうすればそれをきれいに取り除くことができますか? :) – daniol

+0

私は知らない。私はここで検索し、質問と回答がありますが、私は何も試していません。 1つの方法は、ソースからMahAppを構築し、そのコードを削除することです。それは実際には最も簡単な方法かもしれません。 –

関連する問題