問題タブ [freezable]

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 に答える
578 参照

wpf - Freezable.Clone()メソッドとFreezable.CloneCurrentValue()メソッドの違いは何ですか

ドキュメントには

クローン-「System.Windows.Freezableの変更可能なクローンを作成し、オブジェクトの値のディープコピーを作成します。オブジェクトの依存関係プロパティをコピーする場合、このメソッドは式(解決されなくなる可能性があります)をコピーしますが、アニメーションや現在の値はコピーしません。」

CloneCurrentValue-「現在の値を使用して、System.Windows.Freezableの変更可能なクローン(ディープコピー)を作成します。」

これは、両方がディープコピーを行うことを意味します。では、違いは何ですか?

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

.net - WPF Freezable バグの回避策は?

私は最近、本当にひどい WPF バグに遭遇しました。Microsoft Connectのこのバグと同じだと思います。

このアプリケーションは、Visual Studio 2010 を使用して .NET 4.0 Client Profile をターゲットにしています。

基本的に、ViewModel が ItemsControl 内で項目を移動させるプロパティまたはコレクションへの変更をトリガーすると、以下の例外がスローされる可能性があります。常に発生するとは限らず、さまざまなトリガーに基づいてさまざまな時期に発生するようです。アプリ起動直後の方が多いようです。例外をヒットせずに数分間使用できる場合、そのアプリケーション インスタンス中にヒットすることはおそらくないでしょう。

Connect のバグ レポートと同様{DynamicResource key}SolidColorBrushResourceDictionary. 一部の辞書は手動でロードされます (テーマのサポートのため)。これらの辞書のすべてを手動でフリーズしようとしましたが、効果がないようです。

UserControls にバインドされた ItemsControls を含むいくつかの s をメイン ウィンドウに追加すると、最近、例外が頻繁に発生するようになりましたObservableCollection。以前は、例外は 50 回に 1 回しか発生しませんでしたが、現在はプログラムを使用する 5 回に 4 回発生しています。

誰にも回避策のアイデアはありますか? Connect のバグは、これがおそらく次の .NET リリースで修正されることを示しています (そのときはいつでも) が、このバグにより、アプリケーションは基本的に使用できなくなります。

InvalidOperationException編集: また、ViewModel 基本クラスの PropertyChanged イベント内でスローされた s を単純に抑制しようとしました。ObservableCollectionこれにより、例外の数がいくらか減ったように見えましたが、今はのCollectionChangedイベントでヒットするだけです。

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

wpf - 独自の Freezable クラスを作成するにはどうすればよいですか?

MSDN を試しましたが、Freezable から派生する例はありません。

アップデート:

はい、MSDN にはアニメーションの例がありますが、複雑すぎます。フリーザブルを理解するためのより簡単なものが必要です。

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

wpf - WPF フリーズした BitmapImage が表示されない

UI の画像プロパティにバインドされたビューモデルを使用していますが、ビューモデルには ImageSource プロパティが含まれています。次の関数を使用してそのプロパティを設定します

奇妙な理由で、次のコードでは、BitmapImage で Freeze を呼び出すと、メイン ウィンドウに表示されません。例外もクラッシュも発生しません。誰でもこれで私を助けることができますか? イメージ プロパティを非同期で設定しているため、UI スレッド以外のスレッドから GetImageFromUri 呼び出しが行われたと仮定して、作成したイメージを使用できるようにする必要があります。

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

c# - ストーリーボードを使用してカスタムコマンドを発生させます。エラー:ストーリーボードはフリーズできません

凍結できないことについて不平を言っているストーリーボードに問題があります。これについてグーグルにはたくさんのリンクがあります、しかし私はその情報を読んで私が望むものをどのように達成することができるかわかりません。(つまり、IsMouseOverプロパティの変更からカスタムコマンドを実行するだけです)。以下の情報で提供したリンクのようにリストビューを変更するためにデータテンプレートを使用しています。

私のリソース辞書:

私のUIは次のようになります:

私のコンバーターは次のようになります:

私のGestureState列挙型は次のようになります。

私のジェスチャーコントローラー/コマンドは次のようになります。

私のビューモデルは次のようになります。

私が得ている例外は次のとおりです。

InvalidOperation:ストーリーボードをフリーズできません。

私のUIは次のようになります。

http://socialbarrel.com/wp-content/uploads/2011/03/Android-Like-Gesture-Unlock-Screen-Being-Tested-By-Apple-Report.jpg?98c14d

現在の理解:

ストーリーボードは、フリーズされていないスレッド間ですばやくアクセスできるようにフリーズ可能である必要があることを読んで理解しています。

私の質問は、どのようにしてバインディングをフリーズ可能にするか、別のアプローチを使用して目的を達成できるかということです。私の主な問題は、ジェスチャをキャプチャするときにリストアイテムにマウスを合わせるときにカスタムコマンドまたはイベントを発生させたいということです。

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

c# - 親とは異なるスレッドに属する DependencyObject は使用できません

データベースがローカルではないため、データの読み込みに時間がかかる可能性があるため、ユーザーがコントロールから選択するとすぐに読み込みポップアップを表示したい wpf フォームを取得しました。ポップアップウィンドウのスレッドを作成するところまで、すべてがうまくいきました。

これは私が私のスレッドを作成する場所です:

そしてスレッドメソッド:

今、私がこのエラーを取得する瞬間:

親の Freezable とは異なるスレッドに属する DependencyObject は使用できません。

どんな助けでも大歓迎です:)

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

c# - 私がやりたいのはFreezableCollection.AddRange(collectionToAdd)です

私がやりたいのはFreezableCollection.AddRange(collectionToAdd)

FreezableCollectionに追加するたびに、イベントが発生し、何かが発生します。これで、追加したい新しいコレクションができましたが、今回はFreezableCollectionのCollectionChangedイベントを1回だけ発生させたいと思います。

ループして追加すると、新しいアイテムごとにイベントが発生します。

List.AddRangeのように、目標でFreezableCollectionにすべて追加できる方法はありますか?

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

c# - 添付プロパティ内の FrameworkElement のプロパティへのバインド

私はすでに問題を解決する方法を知っていますが、なぜこのように機能するのか説明が必要です。Textコントロールのプロパティを設定するテスト添付プロパティを作成しましたTextBlock。添付プロパティにより多くのパラメーターが必要なため、一般的なプロパティ ( IGeneralAttProp) を受け入れるようにプロパティを作成したので、次のように使用できます。

Setter添付プロパティとIGeneralAttPropインターフェイスの実装は次のとおりです。

およびAttPropertyImplクラスの実装:

AttPropertyImplがから継承されている場合、すべて正常に動作しFreezableます。DependencyObjectメッセージとのバインドに失敗するだけの場合:

ターゲット要素の管理 FrameworkElement または FrameworkContentElement が見つかりません。BindingExpression:Path=TextToDisplay; DataItem=null; ターゲット要素は 'AttPropertyImpl' (HashCode=15874253) です。ターゲット プロパティは 'TTD' (タイプ 'String') です

の場合FrameworkElement、バインドにエラーはありませんが、値はバインドされていません。

問題は、正しく動作するためになぜAttPropertyImpl継承しなければならないのかということです。Freezable

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

c# - WPF DataGrid の最初の列をフリーズする方法

私はWPF DataGridを持っています..

水平スクロール中にそのWPF DataGridの最初の列をフリーズしたい..

私のコードは次のとおりです。