問題タブ [xamlwriter]
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.
.net - XamlWriter.SaveがBaseUriプロパティをシリアル化しないようにするにはどうすればよいですか?
WPFアプリケーションのテーマエディターを作成しています。XAMLファイルを動的に生成してから、アプリケーションで使用されるDLLにコンパイルします。XAMLファイルの生成に使用されるコードは、次の行に沿っています。
私の問題は、プロパティXamlWriter.Save
もシリアル化することです。BaseUri
その結果、アプリケーションがこの画像をフェッチしようとすると、が設定されていないため、画像が見つかりませんBaseUri
。通常、XAMLパーサーはこのプロパティを(IUriContext
インターフェイスを介して)設定しますが、XAMLで既に明示的に設定されている場合、パーサーはそれを設定しないため、nullのままになります。
プロパティのXamlWriter
シリアル化を防ぐ方法はありますか?BaseUri
カスタムクラスをシリアル化する場合は、ShouldSerializeBaseUri()
メソッドを追加するか、明示的に実装することができIUriContext
ます(両方のオプションを試したところ、目的の結果が得られました)が、どのように実行すればよいBitmapImage
ですか?
最後の手段として、XAMLファイルをロードし、Linq to XMLで属性を削除することもできましたが、よりクリーンなソリューションを望んでいました。
wpf - WPF: XamlWriter.Save は "Run" インラインを別の方法で保存します - タグを使用する場合と使用しない場合 (単純なテキストとして)
テキストブロックには 3 つの実行インラインがあります。私はそれをxmlに保存する必要があり、そのためにXamlWriter.Saveを使用します。その結果、次のようになりました。
問題は、この xaml が wpf フレームワークを使用せずに純粋な xml として解析されることです。パーサーを正しく動作させるには、xaml が次のように表示されるようにする必要があります。
たとえば、すべてのインラインは個別のタグです。これどうやってするの?XamlWriter と Inlines コレクションのプロパティと設定を調べましたが、それに対応するものは見つかりませんでした。
c# - TFS 2010: ディクショナリを逆シリアル化できないのはなぜですか逆シリアル化に XamlReader を使用できる場合は XamlWriter.Save を使用
上記のステートメントは を返しますNotSupportedException
。
奇妙なことにXamlReader
、辞書をシリアライズするために を使用できます。
XML:
c# - BackgroundWorkerスレッドでのFlowDocumentの作成
FlowDocument
大量のデータセットから動的に生成する必要があります。このプロセスには数分かかるため、UIをハングさせるのではなく、バックグラウンドスレッドで操作を実行したいと思います。
ただし、FlowDocument
UI以外のスレッドでを生成することはできません。そうしないと、長方形を挿入しようとすると、画像がSTAスレッドではないことを示す実行時エラーが発生します。
StackOverflowには、私が抱えているのと同じ問題を抱えているように見えるスレッドがいくつかあります。
最初のリンクで、誰かが次のことを提案しています。
「私がすること:を使用して、
XamlWriter
をにシリアルFlowDocument
化しXDocument
ます。シリアル化タスクにはDispatcher
、が含まれますが、一度実行すると、データの奇抜な並列分析を必要なだけ実行でき、UIの何も影響しません。(また、一度それXDocument
をクエリするとXPath
、問題が実際に釘である限り、これはかなり良いハンマーです。)」
誰かがこれによって作者が何を意味するのか詳しく説明できますか?
c# - XamlWriter を使用して配列を保存する
オブジェクトのコレクションをXamlWriter
可能な限り簡単な方法で保存しようとしています。何らかの理由でそれらを配列として保存すると、無効な XML が生成されます。
出力:
XamlReader
スローを使用してこれを読み取ろうとしています:
「[」文字 (16 進値 0x5B) は、名前に含めることはできません。行 1、位置 7
List<T>
代わりにとして保存しようとしましたが、通常の XAML ジェネリック エラーが発生します。それを行う簡単な方法はありますか (できれば LINQ を使用)、または独自のラッパー型を定義する必要がありますか?
windows-runtime - WinRTでXamlFramworkElementのクローンを作成します
FrameworkELement
WinRTのCodeBehindにクローンを作成する必要があります...
私はインターネットで解決策を見つけましたが、この回避策はWinRTでは利用できないため、WinRTでは機能しませXamlWriter
ん。XAML要素の正確なコピー(クローン)を取得する簡単な/組み込みの方法はありますか?
私の別のインスタンスを取得する他の方法はありますFrameworkElement
か?
c# - XamlWriter.Save(object obj、Stream stream)から文字列を取得します
から文字列を取り戻すことはできますXamlWriter.Save(myBF, stream)
か?私はそれが必要なので、データベースに文字列を保存します。この答えからの例で私が変更しなければならないこと
c# - XamlWriter.Save() は DependencyProperties をシリアル化していません
私の UserControl から次の XAML を検討してください。
関連するイベント ハンドラー:
TextBlock が読み込まれると、次の出力がコンソールに書き込まれます。
次に、この代替 XAML を検討してください。
TextBlock が読み込まれると、次の出力がコンソールに書き込まれます。
TextProperty がシリアル化されていないことに注意してください。
XamlWriter.Save() への呼び出しの前に、次の TextProperty 割り当てが追加された場合:
その後、TextBlock が読み込まれると、次の出力がコンソールに書き込まれます。
TextProperty が再びシリアル化されていることに注意してください。
このブログ投稿では、「...プロパティが DependencyProperty によってサポートされている場合...プロパティは、実際に設定されている場合にのみ書き込まれます」と説明しています。
最初の使用例では TextProperty が実際に設定されているように見えますが、ListBox と DataTemplate を使用した 2 番目の使用例では設定されていません。
これが事実である理由と、この障害を克服する方法を誰かが説明できますか?
XAML パーサーは、依存関係プロパティで SetValue を呼び出すのではなく、TextBlock の状態を何らかの方法で内部的に設定していると推測されますが、DataTemplate 内の要素に対してのみこれを行う理由がわかりません。