問題タブ [frameworkelement]
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.
c# - WPF フレームワーク要素
私はWPFプログラミングモデルが初めてです。私はいくつかのクエリを持っています:
XAML (XBAP アプリケーション) の Page タグはタイプ
FrameworkElement
ですか?子要素がある場合は、ページ内のフレームと言ってください。そのフレーム要素を別のアセンブリの関数に渡します。フレーム コントロールの Parent プロパティからページに戻ろうとしましたが、ページへの参照を取得できませんか? 何かご意見は?
子コントロールの親ページを取得するために別のアセンブリで使用している関数
</DataTrigger> </DataTemplate.Triggers>-->
c# - アニメーションの完了時にFrameworkElementsを削除する
私はSells/Griffithsの「ProgrammingWPF」を通じて自分自身にWPFを教えてきました。それは素晴らしいリソースだと思いましたが、彼らが紹介してくれた概念のいくつかを取り入れて、さらに一歩進んでいます。そして、私がやろうとしていることを達成するためにピースを組み合わせる方法について、概念的な問題に直面しています。
この演習では、自己終了アニメーションを作成しようとしています。FrameworkElement
■イベントによって作成され、アニメーションを実行してから、自分自身を削除します。FrameworkElement
Animation.Completedイベントから親にコールバックする方法を理解するのに問題があります。
DoubleAnimation
私はもともと、含まれておらず、の一部ではないを使用してこの質問をしましたStoryboard
。その後、を追加しStoryboard
、Storyboard
と長方形のリソースを作成して、簡単に再利用できるようにしました。
これが私がこれまでに持っているものです:
.xaml:
.cs:
これは機能しますが、私が望む方法ではありません。キャンバスは空であり、すべてのアニメーションは同じ長さであるため、アニメーションが終了すると、常にキャンバスの最初の子で呼び出されたものになります。
ただし、ランダムな時間のアニメーションを実装したいと思います。つまり、アニメーションは常に同じ順序で開始および終了するとは限りません。どういうわけか、SB_Completedイベントで、呼び出されていたコントロールにアクセスしたいのですが、まだパスが見つからないようです。
SB_Completedイベントを呼び出すMedia.Animation.ClockGroupから、アニメーションが呼び出されているコントロールに移動する方法はありますか?
silverlight - Silverlight:レンダリングされる前にFrameworkElementで発生するイベントはありますか?
Silverlight 2プロジェクトでは、さまざまなユーザーコントロールのテキストプロパティへのオンザフライ変換を実行するための添付プロパティを作成しました。これを実現するためFrameworkElement
に、プロパティが設定されたときにのLoadedイベントをフックします。イベントが発生すると、既存のテキストプロパティ値を取得し、プロパティ値を翻訳されたテキストに置き換える前に、いくつかの単純な文字列置換を実行します。ただし、これにより、コントロールは翻訳されていないテキストでレンダリングされ、テキストはすぐに翻訳されたバージョンに置き換えられます。
コントロールがレンダリングされる前に発生するフック可能な代替イベントはありますか?
wpf - DataContextに依存する条件付きFrameworkElements
私のMV-VMアプリケーションでは、ユーザーのアバターを表示する必要があります。画像は、ViewModelオブジェクトのタイプImageSourceのプロパティで提供されます。それが私が現在持っているものです:
ただし、一部のユーザーはアバターを構成していない可能性があるため、UserAvatarはnull
です。その場合、デフォルトのアバターを表示したいと思います。デフォルトの画像はプレゼンテーションの問題であるため、ビュー以外の誰もがデフォルトの画像について知っている必要はありません。
したがって、指定されたImageSourceを使用して画像を表示する方法、またはImageSourceがの場合は特定のリソースを表示するにはどうすればよいですかnull
。DataTriggersで何らかのDataTemplateを使用する必要がありますか?今からItemsControlsにしか使っていないのでわかりません。
wpf - ストーリーボードからフレームワーク要素を取得する
Storyboardオブジェクトのインスタンスへの参照があり、それがアタッチされている/アニメーション化されているFramework要素を取得したいと思います。私はこれを行う方法を思い付くことができませんでした。
たとえば、以下のXAMLで、ストーリーボードへの参照から移動して、ラベルまたはグリッドのいずれかを取得できますか?
一体なぜこれを行う必要があるのか疑問に思っている人のために、ストーリーボード完了イベントが発生したときに呼び出されるDataContextのメソッド名を指定できる派生ストーリーボードクラスまたはアタッチされた動作を作成しようとしているためです。これにより、ビューモデルを呼び出すためにコードを背後に置く必要がなく、純粋なMVVMを実行できるようになります。
silverlight - Silverlight FrameworkElement の ToolTipService にプログラムでアクセスする方法は?
読み込み時に XAML ページを再帰的に処理し、各要素の Tag プロパティを調べ、その値を使用して文字列リソースを取得し、要素に適用する言語メカニズムがあります。現在、ツールチップはサポートされておらず、言語化されたリソースを適用するには、各ページに特定のコードが必要です。この機能を再帰メカニズムに追加しようとしています。
だから私はツリーを再帰しています. である各要素について、FrameworkElement
それが ToolTipService を持っているかどうか、もしそうならその ToolTipService が ToolTip 要素を持っているかどうかを知りたいです. その場合は、Tag プロパティがあればそれを取得し、そのタグを使用して検索した値を Content プロパティに設定します。私の問題は、ツールチップがあるかどうかを判断してそれにアクセスする方法がわからないことです。
これは要素を示すサンプルです。この場合は画像です。ツリーを再帰的に処理していて、現在の要素が画像の場合、ツールヒントにアクセスするにはどうすればよいですか?
wpf - Framework ElementFactoryWPFへの画像の追加で問題が発生しました
ナビゲーションにリストビューツリーを使用するWPFアプリケーションがあります。このツリーには、オブジェクトタイプのリストがあるので、次のようになります。
右側の各オブジェクト名の横には、編集アイコンがあります。オブジェクトタイプに基づいて、オブジェクト名の左側にアイコンを追加します。オブジェクトタイプには、ラジオボタン、コンボボックスなどがあります。データベースからのオブジェクトタイプを使用しているので、問題ありません。私の問題は、このツリーが動的に作成されていることです。そこで、FrameworkElementFactoryを使用して、各オブジェクト名の横にスタックパネルを追加し、各オブジェクト名の横に編集ボタンを配置できるようにしました。うまくいけば、それは理にかなっています。
私がこれまでに試したことは、画像の部分です。
ビットマップアプローチを使用しようとすると、WPFアプリケーションであるWindow1のインスタンスを作成できないというエラーが表示されます。私がやろうとしているのは、オブジェクトタイプを特定し、それに基づいてアイコン画像を動的に設定することだけです。私はちょうどアイデアが足りませんが、このアプローチを使用してこれを達成する他の方法はありますか?
ただの更新で、私はついにアプリのクラッシュを乗り越えました。更新されたコードは次のとおりです。
ただし、アイコンは現在表示されていません。誰もが理由を知っていますか?
wpf - FrameworkElement から派生した型に DataTemplate を適用する
アプリにカスタム「ページ」のリストがあります。各ページは、異なる UI ビューを表します。これらには、文字列のタイトルやアイコンなどのいくつかの単純なプロパティがありますが、メイン ツールバー、メイン コンテンツ領域、カスタム ステータスバー パネルなどに挿入するコントロールで構成される複雑なプロパティもいくつかあります。ページ タイプは次から派生します。FrameworkElement
各ページの XAML 内でデータ バインディングが適切に機能するようにします。これまでのところ、私が説明したことはすべてうまくいきます。
問題は、すべてのページのリストをすばやく表示しようとしたときに発生します。ItemsControl
アクティブなページのリストにバインドされた と、ページのプロパティにバインドされたラベルだけで構成される にDataTemplate
割り当てられています(前述のように、これは単なる文字列です)。ただし、実行すると、リストに何も表示されず、エラー出力に次のように表示されます。ItemTemplate
Title
System.Windows.Data エラー: 25: ItemTemplate と ItemTemplateSelector は項目に対して有効ではありません。; タイプ='ウェルカムページ'
基本型をFrameworkElement
テンプレート以外のものに変更すると機能しますが、各ページ内のデータ バインディングはひどく壊れます (ページの XAML 内で定義されElementName
た common の子である関係する両方のコントロールにもかかわらず、アイテムへのバインディングは失敗します)。FrameworkElement
DataTemplate を取得して FrameworkElement 派生型に適用する方法、またはデータ バインディングを取得して非 FrameworkElement をルートとする XAML ファイルで機能する方法を知っている人はいますか?
wpf - WPF FrameworkElement の現在の Visual State をプログラムで取得するにはどうすればよいですか?
WPF FrameworkElement の現在の Visual State をプログラムで取得するにはどうすればよいですか? 状態とは、「通常」、「MouseOver」、「無効」などの状態を意味します。
編集:基本的に、ボタンの視覚状態を でVisualStateManager.GoToState(e, "MouseOver", true);
変更しています。完了後にどの状態に戻すかを知りたいです。
wpf - WPFでは、FrameworkElementの実際のサイズを取得するにはどうすればよいですか?
WPF では、ドロップ シャドウなどの効果が追加する余分なサイズを含め、FrameworkElement の実際のサイズを取得するにはどうすればよいですか?
ドロップシャドウ付きのボタンがあります。プログラムでPNGファイルに出力しています。ActualWidth
ボタンのサイズを取得するためにとを使用ActualHeight
しますが、これはドロップ シャドウのないボタンのサイズです。
その結果、ドロップ シャドウのあるボタンは、ドロップ シャドウのないボタンのサイズに押しつぶされます。
ドロップシャドウ付きのボタンのサイズを把握する方法を知っている人はいますか?