問題タブ [xamlreader]
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 - XamlReader を使用して文字列からグリッドを作成する
次のような XAML グリッドの文字列表現があります。
私がする必要があるのは、この文字列から Grid オブジェクトを作成することです。私は多くのアプローチを試しましたが、これまでのところ最も近いのは以下のコードです:
ただし、ルート要素が見つからないことを示す XamlParsedException が発生します。
表示できない XAML コードに誤りがありますか? それともアプローチが悪い?
答えてくれてありがとう
wpf - Loose Xaml コンテンツをカスタム コントロールに対応させる方法
緩い XAML ファイルがあります...
...実行時にロードしたい。実行すると、「型参照は 'CustomControl' という名前のパブリック型を見つけることができません」という例外が発生します。Loose XAML に自分の名前空間を認識させるにはどうすればよいですか?
HoverOpacity
の依存関係プロパティである whichを使用する必要がありCustomControl
ます。XAML を読み込むために現在使用しているコードは次のとおりです。
ところで、XAML は単純でStyle
、コードに挿入するだけでよいことがわかりましたが、これは Hello World XAML です。アニメーションなどを含めて、より複雑になるでしょう。
PS 別の解決策は、Panel から派生したカスタム コントロール (Visual Studio 2008 をクラッシュさせないもの) に XAML ファイルをアタッチする方法、またはトリガー、データ トリガー、エントリ アクション、および終了アクションを簡単にアタッチする方法です。カスタム コントロールに。
c# - C# 属性 XmlIgnore および XamlWriter クラス - XmlIgnore が機能しない
Brush MyBrush
としてマークされたプロパティを含むクラスがあります[XmlIgnore]
。それにもかかわらず、ストリームでシリアル化されているため、を介して読み取ろうとすると問題が発生しますXamlReader
。
プロパティの可視性を(内部に)変更すると、ストリームに表示されなくなります。残念ながら、特定のシナリオではこれを行うことはできません。
- 誰かが同じ問題を抱えていましたか?
- これを回避する方法はありますか?
備考: 私が知る限り、C# 4.0
これは、以下をテストする単体テストのメソッドですXamlSerialization
。
私のクラスの 1 つで、私は Property を使用しBrush
ます。Brush
上記のコードでは、オブジェクト (シリアル化できない) が値であるため、この単体テストは失敗します。Setter を削除すると (以下のように)、単体テストに合格します。
XmlWriter
(基本的に上記と同じテスト)を使用すると機能します。では、 Setter が存在するときにシリアル化され、削除されたときにシリアル化されていないStringBuffer sb
ことがわかりますProperty Brush
(おそらく、Setter がないためにプロパティを無視する別のチェック)。のその他のプロパティ[XmlIgnore]
は、意図したとおりに無視されます。
c#-4.0 - XamlWriterのC#オブジェクトXamlファクトリメソッド
私のクラスは、プロパティ(public Image myImage
)として画像を使用しています。このクラスがシリアル化されている場合(XamlWriter
)は正常に機能しますが、読み戻すと例外が発生します。
'タイプ'System.Drawing.Bitmap'に一致するコンストラクターが見つかりません。ArgumentsまたはFactoryMethodディレクティブを使用して、このタイプを作成できます。行番号「5」および行位置「8」。
明らかに、引数としてColorPaletteを使用したBitmapにはコンストラクターがありません。
なんとかしてビットビットを作成するファクトリメソッドを指定できることを理解しています。http://www.wpftutorial.net/XAML2009.htmlなど、このためのディレクティブに関する記事もいくつか見つかりました。
しかし、私は専門家でXaml
はなく、属性でメソッドを定義/宣言する方法と場所を理解していません。残念ながら、この例も見つかりません。
私はいくつかのようなものを期待しています
しかし、実際には何も見つかりませんでした。あなたが知っているアイデア/例はありますか?
wpf - VVBig XAML ファイルの操作
何千トンものコード行を含む XAML ファイルを操作したことがありますか。(より具体的には、私の場合、アプリケーション全体の描画ブラシ)。このファイルのサイズは 20 MB 以上です。これに何かを追加/編集しようとすると、Visual Studio 2008 がクラッシュします (7/10 回)。次に、変更を行って変更を保存しようとすると、VS がクラッシュします (ほとんどの場合)。VS でこのような大きなファイルを操作するのは非常に困難です (Blend でも同じことが起こりますが、発生することはほとんど
ありません)。しかし、どういうわけかそのようなシナリオに遭遇した場合、どうすればよいですか???
最終的に見つけたのは KXAML だけでした。これは非常に優れていることがわかりました。他の提案はありますか??
更新そのファイルの構造を変更したり、他のアプローチを取りたくありません。どのように作業するか知りたいです / そのようなファイルで。(他の編集者もそうかもしれません)
答えを見て追加- 私はこの時点で立ち往生していないと思います. (このファイルを分離することは、この問題を回避するための v.first の考えであり、解決策ではありません)
ADD1よし!! 残念ながら、私はこの考えに関して楽観的になりすぎました。キャンバスを考えると、この巨大なファイルを分割するベスト プラクティスをお願いしたいと思います。
c# - バックグラウンド スレッドでの XamlReader.Load。出来ますか?
XamlReader.Load()
WPF アプリには、メソッドを使用して別のファイルからユーザー コントロールを読み込む操作があります。
ファイルのサイズが原因でプロセスに時間がかかるため、UI が数秒間フリーズします。
アプリの応答性を維持するために、UI の更新に直接関与しない操作の一部を実行するために、バックグラウンド スレッドを使用しようとしています。
使用しようとするBackgroundWorker
と、エラーが発生しました:多くの UI コンポーネントがこれを必要とするため、呼び出し元のスレッドは STA でなければなりません
だから、私は別の方法に行きました:
時間のかかる操作はすべて UI スレッドに残っているため、これでは何も解決しません。
このようにしようとすると、すべての解析がバックグラウンドで行われます:
例外が発生しました:別のスレッドがこのオブジェクトを所有しているため、呼び出し元のスレッドはこのオブジェクトにアクセスできません。(ロードされた UserControl には、エラーを引き起こす可能性のある他のコントロールが存在します)
UI が応答するような方法でこの操作を実行する方法はありますか?
c# - WPFでのXAMLロード後のUIElementへのアクセス
次をCanvas
使用して、ファイルからのXAMLロードからデータが入力されています。
境界線には、いくつかのユーザーコントロールを含む多くの子要素が含まれています。
XAMLファイルの部分的なスニペット:
コードビハインドでコントロールにアクセスしたい場合、以下を使用して実際に要素に再フックすることはできません。
UI要素は画面に正常に表示されますが、常に「Visが見つかりませんでした」というメッセージが表示されます。これまで読んだすべてのことから、FindNameの使用は、私の要素がキャンバスのどこかの子である限り機能するはずですよね?私は何が欠けていますか?
ありがとうございました
wpf - XamlReader は、外部アセンブリで定義された型を含む xaml を読み込めますか?
XamlReaderは、ローカル アセンブリ内で定義された型と WPF アセンブリを問題なく使用して Xaml をロードしています。
外部アセンブリ内で定義された型を含めると、次のメッセージを含む XamlParseExceptionがスローされます。
不明なタイプ '{clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Charting}SeriesMapping' を作成できません。行番号「13」と行位置「18」。
この手法を使用して外部アセンブリから型を読み込むことは可能ですか?
c# - TextBox.IsReadOnly を設定しようとすると、奇妙な XAML 解析エラーが発生する
これを単純なテストケースに減らすことができました。を使用して、この XAML の解析中に例外がスローされますXamlReader.Parse()
。
例外メッセージは次のとおりです。
不明なメンバー 'System.Windows.Controls.TextBox.IsReadOnly' を設定できません。行番号「13」と行位置「11」。
IsReadOnly
に設定しないとTextBox
、問題なく解析されます。スタイルトリガーを削除しても、うまく解析されます。
誰でもこれに光を当てることができますか?私はWPFにかなり慣れていません。
更新:
これを再現するために使用している単体テストは次のとおりです(私のPCでは失敗しています):
更新 2:
私はもともと、PresentationFramework v4.0.30319 だけを参照していました。PresentationCore、System.Xaml、および WindowsBase への参照を追加しても効果はありません。
プロジェクトの .NET バージョンは 4 です (フル、クライアント プロファイルではありません)。
更新 3:
Arg、これは ExpressionBlend 3.0.1927.0 および XamlPadX 4 で正常に動作しXamlReader.Parse()
ますXamlReader.Load()
。