wpfでカスタムコントロールを作成中です。私はコンボボックスを親として使用しました。 私のカスタムコンボボックスは、その親のようにどのように機能するのだろうか?どのように私の画面の任意の部分をクリックし、私のコンボボックスのドロップダウン部分を閉じることができます...私は多くの方法を試みたが、どちらも正しく動作していません。wpf(またはsilverlight)のコンボボックスに関する実装の詳細について質問したい
誰かが何か他の記事を投稿できますか?
wpfでカスタムコントロールを作成中です。私はコンボボックスを親として使用しました。 私のカスタムコンボボックスは、その親のようにどのように機能するのだろうか?どのように私の画面の任意の部分をクリックし、私のコンボボックスのドロップダウン部分を閉じることができます...私は多くの方法を試みたが、どちらも正しく動作していません。wpf(またはsilverlight)のコンボボックスに関する実装の詳細について質問したい
誰かが何か他の記事を投稿できますか?
ComboBoxの標準コントロールテンプレートは、WPFとSilverlightです。
WPF例のポップアップとトグルボタン(右矢印)がプロパティIsDropDownOpenと結合されている:
<Popup IsOpen="{TemplateBinding IsDropDownOpen}" ...
<ToggleButton IsChecked="{Binding Path=IsDropDownOpen,Mode=TwoWay,RelativeSource={RelativeSource TemplatedParent}}" ...
クラスPopup
は、標準テンプレートに指定されていない性質StaysOpen
を有しますComboBoxのデフォルト値はtrue
です。コントロールがフォーカスを失うたびにIsDropDownOpen=false
を設定するComboBoxの内部実装でLostFocus
イベントのサブスクリプションが存在することになります。
Silverlightにはxamlにバインディングはありませんが、.NET Reflectorでアセンブリを開くと同じシーケンスが見つかります。
私はwpfでコンボボックスの実装を読んでいます。私自身の実装はトグルボタンを必要としないので、私はIsDropDownOpenを使用しません。自分でdropdownopenを処理します。お返事ありがとう! – jiluo
XAMLとコードを含めます。 –
"ポップアップ"と呼ばれるComboBoxの一部があります。ユーザーが外部の場所をクリックした場合にComboBoxを閉じるかどうかを示すプロパティ "StaysOpen"があります。 – vorrtex
ありがとう!私が試してみます。しかし、私は内部の実装を知りたいです – jiluo