POPUP コントロール についてです。
よく 「ボタンを押す」→「ポップアップ出す」というデザインを使います。
ポップアップの動作的にはこんな感じになると思います。
- ボタンを押す。
- ポップアップを表示させる。
- ポップアップ以外の場所をクリックするとポップアップが閉じる。
ただね、
- ボタンを押す。
- ポップアップを表示させる。
- ボタンをクリックする。
- ボタンを押す時のMouseDownでポップアップが閉じる。
MouseUPでポップアップが表示される。
ポップアップ閉じてくれえええええ
はい。
すっごい探しまして見つけました。
ToggleButton のNameを指定しないといけませんが、仕方ないでしょう。
<Grid> <ToggleButton Name="tbWithPopup" Width="30" Height="30" IsChecked="{Binding ElementName=pUp, Path=IsOpen}"> <ToggleButton.Style> <Style TargetType="ToggleButton"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=pUp, Path=IsOpen}" Value="True"> <Setter Property="IsHitTestVisible" Value="False" /> </DataTrigger> </Style.Triggers> </Style> </ToggleButton.Style> <Polygon Points="0,0 2,0, 1,1" Fill="Black" Stretch="Fill" /> </ToggleButton> <Popup Name="pUp" PlacementTarget="{Binding ElementName=tbWithPopup}" AllowsTransparency="True" StaysOpen="False" Width="200"> <RichTextBox IsReadOnly="True"> <RichTextBox.Document> <FlowDocument> <Paragraph> Checkout WPF Tat for more elegant solutions </Paragraph> </FlowDocument> </RichTextBox.Document> </RichTextBox> </Popup> </Grid>
この人神様かな?
WPF TaT: ToggleButton with Popup