問題タブ [attachedbehaviors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1425 参照

silverlight - SilverlightComboBoxの接続動作

SilverlightComboBoxに適用できるアタッチされたビヘイビアーを作成しようとしています。

私の行動はこれです:

これは、XAMLで次のように使用されます。

エラーが発生しました:

要素ComboBoxの不明な属性ConfirmChangeBehaviour.ConfirmChange。[行:13位置:65]

Intellisenseが動作を取得していますが、実行時にこれが失敗するのはなぜですか?

ありがとう、マーク

編集: Register()がRegisterAttached()に変更されました。同じエラーが表示されます。

0 投票する
1 に答える
23015 参照

wpf - プレーンな PropertyMetadata よりも FrameworkPropertyMetadata または UIPropertyMetadata を使用する必要があるのはいつですか?

添付されたプロパティと動作のサンプルを見ていると、FrameworkPropertyMetadataUIPropertyMetadataがごちゃまぜに使用されていることがわかりましたPropertyMetadata。それらはすべて継承階層を形成するため、使用するものをどのように選択すればよいでしょうか?

0 投票する
2 に答える
3162 参照

silverlight - Silverlight 動作の OnDetaching() を自動的に呼び出す

Silverlight コントロールでいくつかのブレンド動作とトリガーを使用しています。コントロールが使用されなくなったとき (つまり、ビジュアル ツリーから削除されたとき) に、動作またはトリガーに対して OnDetaching() が自動的にデタッチまたは確実に呼び出されるようにするメカニズムがあるかどうか疑問に思っています。

私の問題は、動作の 1 つが原因で、コントロールにマネージ メモリ リークがあることです。この動作は、OnAttached() オーバーライドで存続期間の長いオブジェクトのイベントにサブスクライブし、OnDetaching() オーバーライドでそのイベントからサブスクライブを解除して、ガベージ コレクションの候補にできるようにする必要があります。ただし、ビジュアルツリーからコントロールを削除すると、OnDetaching() が呼び出されることはないようです...それを実現できる唯一の方法は、コントロールを削除する前に問題のある動作を明示的にデタッチすることであり、適切にガベージコレクションされます.

現時点で私の唯一の解決策は、ガベージ コレクションの問題を引き起こす既知の動作を通過して切り離すことができるコントロールのコード ビハインドにパブリック メソッドを作成することでした。パネルからコントロールを削除する前にこれを呼び出すかどうかは、クライアント コード次第です。私はこのアプローチがあまり好きではないので、見落としている自動化された方法またはより良い提案を探しています。

0 投票する
1 に答える
1198 参照

wpf - WPF-カスタムプロパティを持つスタイル

アプリケーションでドキュメント番号チェックを開発していて、テキストをチェックするためにテキストボックスに添付の動作を記述しました。動作コードは次のとおりです。

そして、これが私のResourceDictionaryで行っていることです。

しかし、ここにあります。「呼び出しのターゲットによって例外がスローされました」と表示されます。そして、私はそれを機能させることができません。

私は何か間違ったことをしていますか?前もって感謝します。

0 投票する
3 に答える
232 参照

wpf - WPF - 依存関係プロパティ エラー

私は WPF プロジェクトに取り組んでいます。私の意図は、2 つの特定の RadioButtons が別の指定されたコンポーネントのプロパティを変更することです。しかし今のところ、RadioButton 内に String を格納しようとしています。

そのために、動作クラスを作成しました。

このプロパティでは:

そして、これらのゲッターとセッター:

XAML 側では、次のようにしました。

int: は Interaction.Behaviors の名前空間で、i: は AdjustBehavior クラスの名前空間です。しかし、アプリケーションを起動するたびに、LabelContent が null に設定されます。なんで?

Behavior クラスの残りの部分は投稿しませんでした。それは問題ではないと思うからですが、必要に応じて投稿します。

前もって感謝します。

クラーク

0 投票する
2 に答える
1312 参照

c# - FlowDocumentScrollViewerの自動スクロール用のアタッチされた動作を作成する方法

私の目標は、FlowDocumentScrollViewerの再利用可能な添付動作を作成して、FlowDocumentが更新(追加)されるたびにビューアが自動的に最後までスクロールするようにすることです。

これまでの問題:

  • OnEnabledChangedは、ビジュアルツリーが完了する前に呼び出されるため、ScrollViewerが見つかりません。
  • FlowDocumentを含むDependencyPropertyにアタッチする方法がわかりません。私の計画は、そのchangedイベントを使用してManagedRangeプロパティを初期化することでした。(必要に応じて、初めて手動でトリガーされます。)
  • DependencyObjectがないため、range_Changedメソッド内からScrollViewerプロパティにアクセスする方法がわかりません。

私はそれらが潜在的に3つの別々の問題(別名質問)であることを理解しています。ただし、それらは相互に依存しており、この動作のために私が試みた全体的な設計です。私がこれを間違った方法で行っている場合に備えて、私はこれを単一の質問として尋ねています。私がそうなら、正しい方法は何ですか?

0 投票する
1 に答える
384 参照

binding - コードからアタッチされた動作をバインドする

カスタムのデフォルト ボタン アタッチ ビヘイビアを使用しています (ここで定義されているように: Silverlight 4 Default Button Service )。

これを XAML で正常にバインドできますが、ネストされたユーザー コントロールでは、次の背後にあるコードでは機能しません。

コードでこれのバインディングを作成するにはどうすればよいですか?
ありがとう、
マーク

0 投票する
2 に答える
3469 参照

wpf - タイプ デリゲートの DependencyProperty

Func<bool>ビヘイビアーが呼び出されたときにタイプのデリゲートを実行するために使用されるアタッチされたビヘイビアーを作成しました。以下は、依存プロパティの定義です。

期待どおりに動作していますが、XAML で次のエラーが発生し、デザイナーが読み込まれません。

プロパティ 'SendToDetailBehavior' が見つからないか、タイプ 'SortableListView' に対してシリアル化できません

以下に xaml があります。

たとえば、依存関係プロパティの基になる型をに変更するとbool、エラーはなくなります。

私が言ったように、添付の動作は機能していますが、デザイナーだけが爆発します。これに関するドキュメントを探しましたが、空になりました。ここにいる誰かが何らかの洞察を持っていることを願っています。

ありがとう、BDN

0 投票する
0 に答える
896 参照

c# - WPF - 添付された動作を使用してクロムレス ウィンドウのサイズを変更する..何か提案はありますか?

誰が挑戦したいですか?

私は現在、再利用可能なテーマ アセンブリの一部となるControlTemplateクロムレスに取り組んでいます。Window移動、閉じる、最小化、および復元の動作を暗黙的にしたいので、この機能に添付された動作を記述し、それをテンプレートに含めました。

さて、リサイズして分岐点に来ました。良くも悪くも、動作でマウスの動きを処理し、カーソルがサイズ変更の「ゾーン」内にあるかどうかを調べています。カーソルを適切に変更するには十分ですが、実際にウィンドウのサイズを変更するようになりました.3つのオプションがあります。

必要に応じて、手でボールを動かして、左と上、幅と高さを調整することができました。これは最も単純なオプションであり、添付されたビヘイビアを使用して簡単に実現できますが、適度に重い作業のように思えます。ウィンドウが調整されてちらつきが発生するため、WPF が引き続きレンダリングされることを理解しています。

2番目のオプションは、メッセージフックを取得してWM_NCHITTESTなどをリッスンすることですが、これまでに見つけた解決策にはサブクラス化が含まれてWindowおり、テーマの消費者にそうでないコントロールを使用することを強制したくありません提供されるフレームワーク。

Window最後のオプションは、マウスがドラッグされたときに表示される長方形を画面に描画し、サイズを変更するMouseUpことです..これは実行可能に思えますが、これまでに行ったことがないため、いいね。

それで、..どうすればいいですか?これまでのところ、Win32 ルートは私の最良の選択肢のように思えますが、誰かが機能する「より純粋な」ソリューションを持っている場合は、そうしません。dynamicいくつかの魔法が可能になる場合に備えて、オプション 3 と .Net 4 までの提案を喜んで受け取ります。

前もって感謝します。

0 投票する
1 に答える
489 参照

wpf - Wpf AttachedBehavior は、使用時にベース テキスト ボックスの機能を失う

添付の動作の問題があります。ビヘイビアーをテキスト ボックスにアタッチすると、最大長などのすべての基本機能が失われますか? これが私のxamlにそれを添付する方法です。取り付けられた動作を外すと、元に戻したときに最大長が機能しませんか? どんな助けでも大歓迎です!

これは私が使用しているクラスです

インポート System.Windows インポート System.Windows.Controls インポート System.Globalization

Namespace AttachedBehaviours

領域「MinimumValue プロパティ」

エンドリージョン

リージョン「MaximumValue プロパティ」

エンドリージョン

領域「マスク プロパティ」

エンドリージョン

リージョン「プライベート静的メソッド」

エンドリージョン

名前空間の終了