問題タブ [contentpresenter]

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 投票する
1 に答える
1476 参照

wpf - ViewModel 変更時のフェードアウト/フェードイン

私の WPF アプリケーションのメイン ウィンドウには、アプリケーションの存続期間中存続するタイトル バー/ナビゲーション領域があり、その後、ほとんどのユーザー操作が行われるワークスペース領域があります。(これはすべて MVVM パターンの精神でコーディングされており、コード ビハインドに対して過度の嫌悪感を抱いている可能性があります: ContentPresenter/ ) 私のコードでは、このプロパティはfrom where を上げることで更新されます。MainWindowViewModelISomeArbitraryVMInterfaceDomainEvent

以上のことをすべて述べた後、DomainEventが起動されて のコンテンツContentPresenterが変更されたときにContentPresenter、 の不透明度をアニメーションで変更したいと考えています。ユーザーの観点からは、現在のビューがフェードアウトするように見せたいのですが新しいでContentPresenter更新され、ISomeArbitraryVMInterface新しいビューに対応する新しいビューISomeArbitraryVMInterfaceがフェードインします。

私が最初に考えたのは、Content プロパティが変更されるたびに ViewModel にイベントを発生させるDomainEventことでした。その後、実装を既に行っていることに気付きましたが、View にイベントを「リッスン」させる方法が思いつきませんでした。その後、同期的にフェードアウト/更新/フェードインします。この種の問題を解決するための洞察をいただければ幸いです。洗練された解決策がある場合は、後世のためにいくつかのコード スニペットを投稿します。

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

wpf - Wpf DataGridのテンプレートを使用する方法は?

次のようなデータグリッドのテンプレートがあります。

次のように使用します。

テンプレート内のScrollViewerにデータグリッドを表示したいのですが、何も表示されません。どうしたの?

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

wpf - コンテンツにUserControlを含める

UserControlを作成しました。私はそれをこのコードに含めたいと思います:

それがUserControlです。

今私の問題に:

次のコードと統合すると、

結果としてそれを受け取ります:

ここに画像の説明を入力してください

それは私が望んでいることではありません。

しかし、それをこのコードと統合すると、望ましい結果が得られます。

ここに画像の説明を入力してください

私の最初の方法で何が問題になっていますか?

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

wpf - WPF ItemsControl -> ContentPresenter

誰かが私の問題で私を助けてくれることを願っていますItemsControl:)

MVVM (およびセル コンテンツ) で追加/削除するためにItemsControlaを使用しますが、これは正常に機能しますが、追加しようとするとスプリッターが表示されますが、機能しません。その理由は、アイテムごとに新しいものが追加されるためです...GridItemsPanelColumn/RowDefinitionsGridSplitterItemsControlContentPresenter

children プロパティの項目の が typeof の場合、ContentPresenterGridSplitterControl に置き換える方法はありますか??TypeSplitterVM

Splittersまた、Gridを としてバインドしようとしていますが、に追加できないため、DependencyProperty使用すると機能しません...ItemsPanelChildrenPanel

これが私のコードです:

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

wpf - ContentPresenterのUserControlへのXAMLバインディングプロパティ

コンテンツに基づいてさまざまな「エディター」(他のユーザーコントロール)を表示するEditorViewというUserControlがあります。

これは、FontEditorをTextBlockに置き換えたバインディングをテストするためのEditorViewです。

正しいテンプレートはEditorView.Contentに基づいて選択され、TextBlockの場合はバインディングは希望どおりに機能しますが、TextureEditorの場合はTextureNameプロパティは機能しません。

TextureEditorのスニペットは次のとおりです。

UserControlを使用しているので、何か特別なことはありますか?たぶん、異なる名前空間であることが問題ですか?

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

wpf - ComboBox コンテンツ プレゼンターのコンテンツ テンプレートの使用方法

次のファイルには、COMboBox - コントロール テンプレートの例があります。 http://msdn.microsoft.com/en-us/library/ms752094(v=vs.85).aspx

次の XAML を使用して、コンテンツ プレゼンター用のコンテンツ テンプレートを追加しようとしました。ただし、値「1」は「[1,1]」として表示されます。

selectedValue を textblock の tyext にバインドするにはどうすればよいですか?

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

c# - WPF - ContentPresenter のコントロールのプロパティを親コントロールにバインドできない

フォームで使用されるカスタム コントロールがあります。このコントロールは、ラベルとテキスト ボックスを組み合わせたものです。フォームが読み取り専用モードの場合、コントロールはテキスト ボックスの代わりにラベルを表示するように変更されます。これを行うために、次のように、コントロールのコンテンツ テンプレートを定義しました。

ReadOnlyContentPresenterのコンテンツは、次のスタイルが適用されたラベルです。

これは約 80 個のコントロールに対しては正常に機能しますが、さらにコントロールをフォームに追加すると、ラベル スタイルのバインディングがソースを見つけられません (エラー 4):

コントロールの編集可能な部分に適用されたスタイルでも同じことが起こります。コントロール番号のコードを移動すると、問題は処理されているコントロールの量に関連していると思います。81(不合格) 管理番号の真上 80(稼働中)、管理番号のバインディング。81は現在動作していますが、制御されているものはありません。80 失敗します。いくつかのコントロールに対してこれを行いましたが、動作は一貫しています。

AdornerDecorator正確にどのように機能するかについてはまだ明確ではありません。調査中に、アドナーレイヤーに144を超えるアドナーを持つ問題について言及しているこの質問AdornerDecoratorを見つけたので、コード内の 's を削除して、バインディングの問題を見つけました。それはコントロール番号に起こっていました。81 以上がすべてのFormFieldControl's に発生しています。

最後に、コントロール テンプレートでContentControlの代わりにを試してみることにしました。ContentPresenterこれは、フォーム内のすべてのコントロールに対して正常に機能します。ContentPresenterこれは の軽量な形式でContentControlあり、それよりもコンテンツ テンプレート内で使用するのに適していることはわかっていContentControlます。ContentPresenterただし、を使用するとバインディングが失敗し、を使用するとバインディングが機能する理由がよくわかりませんContentControl

また、限られたセットのコントロールしか機能せず、AdornerDecorator を使用しない場合、いずれのコントロールもバインディング ソースを見つけられないことも奇妙に感じます。

誰かが似たようなものに出くわしましたか? 私が間違っていることはありContentPresenterますか?または、これが予想される動作である場合、誰かが何が起こっているのかを理解するのを手伝ってくれますか?

どんなアイデアでも大歓迎です。

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

c# - 設計時にコンテンツを表示しない拡張 Window クラスの ContentPresenter

現在、Window を拡張する Dialog クラス (lookless コントロール) を作成しており、XAML スタイルを使用してそのクラスに既定の ControlTemplate を割り当てています。

ダイアログ テンプレートの「ボタン」セクションを置き換え可能にしたいのですが、他に何も指定されていない場合は、既定のボタンのセットを事前に入力します。これが、クラスに呼び出される依存関係プロパティを追加した理由です。ButtonContent

(以下のDefaultButtonsXAML を参照)アプリケーションを実行すると正しくレンダリングされますが、Visual Studio 2010 のデザイン プレビューではコンテンツがレンダリングされません。なぜこれが起こらないのですか?

私のダイアログクラスは次のようになります。

これは私のXAMLです:

アプリを起動すると、次のように表示されます。

アプリによってレンダリングされたとおり

VS2010 デザイナーはこれをレンダリングします。

VS2010 によるレンダリング


編集:コメントで説明されているように、App.xaml から含まれているリソース ディクショナリの代わりに、上記のスタイルを Themes\Generic.xaml に配置しても何も変わりません。


編集 2:このようにデフォルトを明示的にオーバーライドするButtonContentと、デザイナーにも何も表示されません。実行時には、すべてが完全に機能します。


編集 3:ButtonContentプロパティを拡張するクラスのUserControl代わりにに追加すると、ユーザー コントロール内に正しく表示されます...また、VS2010 は上記で定義されたスタイルを class のウィンドウだけでなく、任意のウィンドウに適用するようですが、 TargetType を適切に設定しました...変です!DialogWindowButtonContentDialog

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

wpf - ContentPresenter.Content を TemplatedParent にバインドする (WPF/Silverlight)

基本的に、たとえばTextBlockoverを(applied to this )Buttonを使用してオーバーレイしたいのですが、デフォルトのテンプレートを削除したくありません。ControlTemplateButton

例:

そして、Buttonデフォルトのテンプレートが取り除かれます:

ここに画像の説明を入力

むしろ、次のようなものを受け取りたいです。

ここに画像の説明を入力

を使用して可能ControlTemplateですか?私はここのようにバインドしようとしてTemplatedParentContentPresenter.Contentました:

または他の組み合わせですが、機能させることができませんでした。

編集:

TextBlockこれをボタン (単なる例) だけでなく任意の にも適用できるようにしControlたいので、すべてのControl. また、私はUserControlxaml を可能な限りきれいに保ちたいので (つまり、システム コントロールをTextBlock使用して)、 を作成しないことを好みControlTemplateます。.

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

.net - Trigger 内にある TabItem ContentPresenter のスタイルを設定するにはどうすればよいですか?

TabItem のスタイルを変更していますが、TabItem ヘッダーの背景、前景、およびテキストの色を、選択されているかどうかによって異なるようにしたいと考えています。ControlTemplate.Triggers の外部で ContentPresenter の TextBlock を正常に変更できますが、Trigger 内から「取得」する方法がわかりません。

ここに私のXAMLがあります: