問題タブ [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.
wpf - XamlWriter は、ResourceDictionary の保存中に "x:Name" 属性をスキップします
カスタムスタイルは次のとおりです。
このスタイルを含むこの ResourceDictionary を次のように文字列に保存します。
ここで、s は ResourceDictionary です。問題は、期待される文字列を取得すると、次のようになることです。
Border.RenderTransformのTranslateTransformをご覧ください。ResourceDictionary には x:Name="translation" がありますが、出力文字列に名前がありません。
どこを間違えたのですか、これはバグですか? 前もって感謝します。
xaml - WPF: XAML シリアル化されていない ReadOnly 属性を持つプロパティ
私は、Windows フォーム PropertyGrid を使用してユーザーがオブジェクトのプロパティを表示および変更できるようにする C# WPF アプリケーションに取り組んでいます。一部のプロパティは表示したいがロックしたいので、それらの ReadOnly 属性を true に設定しています。
ただし、プロジェクトの他の場所では、XAML シリアライザーを使用してオブジェクトをシリアル化しているため、ReadOnly 属性が設定されたプロパティがシリアル化から省略されていることがわかりました。
これを実証するには:
このコードの実行:
出力を与えます:
明らかに 'b' プロパティがありません。
これは正しい動作ですか?ReadOnly が true に設定されているプロパティをシリアル化することはできますか?
c# - 名前 'XamlWriter' は現在のコンテキストに存在しません
.NET Framework 4.5.2 を使用して、(Windows 10 で) ユニバーサル Windows アプリケーションを開発しています。
「XamlWriter」と「XamlReader」を使用して xaml オブジェクトを複製しようとしていますが、ビジュアル スタジオにはこのクラスへの参照がないようです。私は得ています:
名前 'XamlWriter' は現在のコンテキストに存在しません
また、私のビジュアル スタジオにはSystem.Windows.Markup
名前空間 ('XamlWriter' と 'XamlReader' を含む) がなく、System.Windows.Input
.
私はウェブを検索しましたが(もちろんここでも)、答えが見つかりませんでした。手がかりに感謝します。
ありがとう。
c# - XpsDocumentWriter の既定の XamlWriter を置き換えるにはどうすればよいですか?
これは非常に遅い既知の問題ですXamlWriter.Save
(Google の「xamlwriter が遅い」だけです)。私が作成したアプリケーションは、XPS ドキュメントを生成し、使用する要素の範囲が限られています。XamlWriter
したがって、より効率的なものに置き換えたいと思います。XamlWriter
使用するデフォルトを置き換えることは可能XpsDocumentWriter
ですか?
リサーチ
以下は、XpsDocumentWriter が Xaml にシリアル化される方法です。
これは私がに書く方法ですXpsDocument
:
そこで、VisualsCollator が Xaml にシリアル化するときに使用するシリアライザーを変更したいと考えています。
はVisualsCollator
実際には次のVisualsToXpsDocument
とおりです。
そして、PackageSerializationManager _manager
実際には次のXpsSerializationManager
とおりです。
そして、継承する PackageSerializationManager は次のとおりです。
私がこれまでに持っている最も近い非解決策
メソッドを継承してオーバーライドすることを考えXpsSerializationManager
てSaveAsXaml
いましたが、値を返さないか、ストリームや書き込み対象のオブジェクトを提供しないため、実際にオーバーライドする方法がわかりません。PackageSerializationManager _manager
それをしてもリフレクションを使ってクラスのフィールドを変更しなければならないVisualsToXpsDocument
ので、ちょっとハックです。
これまでのところ、解決策はありません。
未完成の潜在的な XamlWriter
シリアライザーを置き換えることができる場合は、ここで見つけたカスタムの例を次に示しXamlWriter
ます。
xaml - 実行時に xaml ファイル (ページ) を生成し、それを uri で参照する
ユーザーがコントロールを追加してからドラッグ/ドロップ/サイズ変更などできるGUIデザイナー部分を持つモダンUIに基づくwpfアプリケーションに取り組んでいます。コントロールの位置、サイズなどのプロパティは、データベースのテーブルに保存されます。ユーザーがコントロールを配置できるページがいくつかあります。
私が持っているもの: アプリケーションの開始時に、コントロールはページ ID に基づいてページ (xaml ファイル) のキャンバスに配置されます。コンパイルすると、これらのページはすべてプロジェクトに含まれます。
私が欲しいもの: これらのページを動的にインスタンス化し、それぞれを uri で参照できるようにする方法が必要です。
私が試したこと:「テンプレートページ」を作成し、そこから新しいページをそれぞれインスタンス化しようとしました。次に、コントロールを配置します。次に、xamlwriter.save を使用して、Uri で参照できるようにしたい xaml ファイルを作成します。しかし、xaml ファイルを参照しようとすると失敗します。
私の解決策で私を助けることができる場合、またはより良い方法がある場合は、私に教えてください.
よろしく、フレドリック