問題タブ [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 に答える
337 参照

c# - ContentPresenter.Styleを設定するときに「PreviousData」を参照する方法

次のコードでは、PreviousElementがnullかどうかを確認して、コレクションの最初のアイテムのスタイルを1つのテンプレートに設定し、残りを別のテンプレートに設定しようとしています。トリガー条件が常に真であるため、relativesourceが正しくないと思います。パスはどうあるべきですか?

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

wpf - ビュー モデル プロパティに基づいてアニメーションを実行しますか?

私は実際にMVVMパターンに準拠しようとしていますが、その結果、ビューモデルのプロパティが設定されるたびに(バインディングを介して)ビューでアニメーションを起動する方法を理解するのが困難です。

MainWindow.xaml には ContentPresenter があり、そのプレゼンターのコンテンツを、ユーザーに表示される現在のビューのビュー モデルにバインドしています。たとえば、ユーザーが最初にアプリケーションを実行すると、ContentPresenter は StartViewModel にバインドされます。次に、ユーザーが別の画面に移動するボタンをクリックしてスタディを実行する場合、たとえば、ContentPresenter を StudyViewModel にバインドして、StudyView 画面を表示できるようにする必要があります。次に、ユーザーが開始画面に戻りたい場合、その時点の ContentPresenter は、アプリケーションの起動時に作成された StartViewModel に再度バインドされます。次のようになります。

CurrentContentViewModel のタイプは「ViewModelBase」です。これは、INotifyPropertyChanged を実装するすべてのビュー モデル用に作成した基本クラスです。舞台裏で ViewModelBase の ObservableCollection を保持し、ユーザーを新しい画面に移動させるイベントが発生するたびに、そのコレクションで適切なビュー モデルを探し、そのビュー モデルに CurrentContentViewModel を設定します。コレクションにまだ存在しない場合は、最初にコレクションに追加してから、CurrentContentViewModel をそのビュー モデルに設定します。

私の質問は、ビューが表示されるたびにビューに「イントロ」アニメーションを実行させるにはどうすればよいですか? ビューが ContentPresenter 内に単に読み込まれるたびにストーリーボードを実行するように設定することはできません。これは、ユーザーがアプリケーションの有効期間中に既に読み込まれたビューに戻ったときにアニメーションを再度実行したいからです。その上、私のビューは「ダム」であり、MainWindow の ContentPresenter がビューではなくビュー モデルにバインドされているため、MainWindow に再び表示されていることを認識していません (そのため、VIEW MODEL がコンテンツ プレゼンターにバインドされるたびに何らかのイベントを発生させる必要があり、ビューはそのイベントに応答する必要があります)。

誰かが持っているかもしれないアイデアを事前に感謝し、この質問がすでに尋ねられている場合は申し訳ありません. 似たような投稿をいくつか見つけましたが、私がやりたいこととまったく同じものはありません。

更新 - 解決策が見つかりました

結局のところ (少なくとも私が現在持っている実装では)、これは私が思っていたよりもはるかに簡単に解決できる問題でした。データ テンプレート パターンを使用してビューを構築している場合 (つまり、リソース ディクショナリでビュー モデルごとにデータ テンプレートを定義し、そのリソース ディクショナリを app.xaml ファイルのリソース リストに追加する)、毎回ビューが再作成されます。コンテンツ コントロールから削除されます。私の場合、コンテンツ コントロールのコンテンツを以前のものとは異なるビュー モデルにバインドするたびに、そのビュー モデル用に「構築」されたビューが実際に破棄されます。次に、ビュー モデルが再びコンテンツ コントロールに再割り当てされると、ビューが最初から作成されます。したがって、画面のイントロ アニメーションをビューの Loaded イベントに入れることができます。

他の誰かが同様の問題に直面している場合に備えて、これを共有したかったのですが、データ テンプレートを使用してビュー モデルのビューを表示するこの種の動作を知りませんでした。

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

silverlight - 自動生成された ContentPresenter のプロパティを設定する

Windows Phone SL アプリケーションのビジュアル ツリーの次の部分を検討してください。

コンテンツ プレゼンター

ご覧のとおり、PanoramaItem テンプレートには static への参照が含まれていますDataTemplateSelector。これは、提供された Key に基づいてデータ テンプレートを動的にフィードし、 に提供されたさまざまなビュー モデルのさまざまなビューを表示する単純なクラスDataContextですPanoramaItem。そのコードは次のとおりです。

問題は、ContentPresenter上の画像で選択されているのを見ることができるの作成を制御できないことです。一貫したレイアウトを得るには、垂直方向の配置プロパティを設定できる必要があります。this を参照できないため、どうすればよいかわかりませんContentPresenter。ContentPresenter のプロパティを設定するにはどうすればよいですか?

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

oracle - Oracle WebCenter Content Presenterテンプレート

コンテンツ プレゼンター テンプレートを作成し、それを webcenter に統合する必要があります。しかし、私はこの技術に不慣れです。誰でも、これらのことを学ぶことができる場所、ステップバイステップのチュートリアルから参照を与えることができますか. どんな情報もとても役に立ちます。

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

wpf - WindowsFormsHostコンテンツは、ContentPresenterに渡されたときに表示されません

WPF (Extended WPF Toolkit)WinFormに配置したいコントロールがあります。コントロールをWindowsFormsHostに配置し、それがWindowsFormsHostに与えているものは機能しません。Winformsコントロールは表示されません。テンプレートでは、プロパティはです。DropDownButtonDropDownContentDropDownContentDropDownContentContentPresenter

StackPanel, Gridこのストーリー全体を一般的なコンテナ(など)で試してみたい場合は、問題なく動作します。

誰かが私がこれを解決する方法を知っていますか?

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

silverlight - SilverlightのContentPresenterで可能なTextBlockのForegroundプロパティを設定するにはどうすればよいですか?

Silverlightプロジェクトにボタンのカスタムスタイルがあり、ボタンのテキストの前景(およびその他のプロパティ)を設定したいと思います。しかし、私の考えはContentPresenter、スタイルでを使用することです。このようにして、ボタンに好きなものを入れることができます。

ただし、コンテンツとしてテキストがある場合は、Foreground、FontFamily、FontSizeなどの特定のプロパティを設定できるようにしたいです。また、ホバーなどでこれらのプロパティを変更したいと思います。

これは私のスタイルです(簡略化):

私が見つけたすべての情報はTextBlock.Foreground="..."、ContentPresenterに追加するように教えてください。

しかし、これは私にはうまくいきません。アタッチ可能なプロパティForegroundがTextBlockタイプで使用できないというエラーが表示されます。これは、そのソリューションがWPFでのみ機能するためであり、Silverlightでこのプロパティを設定するにはどうすればよいですか?

タグを使用してフォアグラウンドを設定できることはわかってい<Setter>ますが、マウスオーバーでフォアグラウンドを変更するにはどうすればよいですか?ContentPresenterの前景を設定して、MouseOverVisualStateで変更できるようにします。

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

wpf - MenuItem HeaderTemplate 内で ContentPresenter を使用すると StackOverflowException が発生する

次のマークアップに注意してください。

このスタイルがアプリケーション マークアップ ファイルに追加されると、StackOverflowException実行時に が発生します。

スタイルは、(または生成されたツリー コンテンツの後続の)ContextMenuにアタッチされている のメニュー項目に適用されています。マウスの右ボタンが離され、コンテキスト メニューが開かれる予定である場合、例外がスローされます。TreeViewItemDataTemplate

の使用例の 1 つを次に示しますContextMenu

<ContentPresenter />例外は、ヘッダー テンプレート内のタグに分離されています。コメントアウトすると、例外がクリアされます。何が起きてる?

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

wpf - TabControl から ContentTemplate のインスタンス化された UIElement を取得する

を含むによって定義されるTabControlがあります。マッピングクラスは、特定の ViewModel タイプの によって定義されます。それは次のように機能します:ContentTemplateDataTemplateContentPresenterUIElementDataTemplate

私の問題は、インスタンス化された UIElements のインスタンスが必要なことです。この場合、Diagramインスタンスです。どうすれば入手できますか?

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

silverlight - コントロールの CheckState に基づいて Silverlight のコンテンツを変更する (複数の ContentPresenter を切り替える)

現在の CheckState (checked、unchecked、indeterminate) に基づいてコントロールの内容を変更したいと考えています。可能であれば、XAML のみを使用し、コード ビハインドを必要としないソリューションを希望します。

どのコントロールを使用し、複数のコンテンツ セットを定義する方法を考えています。

例: チェックされた状態が Unchecked のときに UserControl1 を表示し、チェックされた状態が Checked のときに UserControl2 を表示する "ToggleContent" コントロール。

XAML は次のようになります。

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

wpf - カラー アニメーション ContentPresenter

アニメーションを作成したり、ContentPresenter (NormalTextDay) で色をカスタマイズしたりできません。XAML に次のエラーが表示されます。

'System.Windows.Media.Animation.ColorAnimation' アニメーション オブジェクトを使用してプロパティ 'Foreground' をアニメーション化することはできません。互換性のない型 'System.Windows.Media.Brush' が原因です。