問題タブ [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.Parse および RadioButton GroupName
私は非常に奇妙な問題を抱えています。radio
これら2つのコントロールをnewRadio
持ち、プロパティを持つ可能性はありますかIsChecked == true
? 6 行目のコードが実行される前ですが、6radio.IsChecked == true
行目radio.IsChecked == false
とnewRadio.IsChecked == true
.
IsChecked == true
これら2つのラジオボタンが同じになる可能性はありますGroupName
か?
wpf - 値が XAML 要素として記述されている場合、プロパティ値に対して TypeConverter が呼び出されない
classMyProperty
に typeのプロパティがあるとします。XAML を使用して、別の型の複雑な値を割り当てたいと考えています (たとえば、 を見てみましょう)。そこで、クラスに変換して適用できるものを作成します。MyType
MyClass
String
MyTypeConverter
String
MyType
[TypeConverter(typeof(MyTypeConverter))]
MyClass
次のコードは正常に動作します (つまり、MyTypeConverter.ConvertFrom を呼び出します)。
しかし、プロパティ値を XAML 要素に変更するとすぐに、TypeConverter が呼び出されなくなり、変換例外が発生します。
XAML 要素として定義された値の変換を実装するにはどうすればよいですか?
c# - 画像付き XamlReader
クライアントごとにカスタマイズできるようにするアプリケーションを WPF (.Net 3.5) で作成しています。リソースを外部の xaml (テーマ) ファイルに抽象化しました。として構築されたxamlファイルを使用するPage
と、これは完璧に機能します。
XamlReader
今、テーマの xaml ファイルを動的にロードするために使用したいと考えています。このようにして、私がアプリケーションをコンパイルし、他の人が (クライアントごとに) アプリをカスタマイズできます。再コンパイルやソース コードへのアクセスは必要ありません。これが私がやっていることのスナップショットです:
これで、Xaml が正しく解析されるようになりました。ただし、次のようなエラーが表示されるようになりました。
クライアントごとにこれらのリソース (ロゴ画像など) を変更できるようにしたいので、ビルド アクションを からResource
に変更None
し、常に出力ディレクトリにコピーするように指示しました。
実行時に Xaml を解析し、構成を変更して、アセンブリでコンパイルする必要のないイメージ リソースを取得する方法について何か提案はありますか? または、私は完全にベースから外れており、このテーマのカスタマイズを実現するためのより良い方法はありますか?
アップデート:
エラーが発生している正確な行は次のとおりです。
しかし、それはこれがロードされた最初のアセットだからです。別の例を次に示します。
これらは、次の方法でアクセスするスタイルで使用されます。
また
c# - ロードされたルース xaml ファイルのコントロールにテキストをプログラムで設定する
ロードされたルース xaml ファイルで定義されている TextBoxes にテキストを設定したいと考えています。TextBoxes はアプリケーションの一部です。
xaml ファイルは次のようになります。
これは、アプリケーションを新規にコンパイルせずにカスタマイズ可能にする必要がある詳細ビュー用です。Loose xaml ファイルの量とその名前は、コンパイル時にはわかりません。
TextBoxes にテキストを動的に設定するにはどうすればよいですか? どのデータがどの TextBox に入るかを指定できる追加の xml-File があります。
wpf - 新しいWindowインスタンスを作成しても、Window.Showを使用できません
問題は次のとおりです。WPFアプリケーションでは、XamlReader.Loadメソッドを使用して.xamlファイルをロード/解析し、アプリケーションでウィンドウを開いていました。
ウィンドウを返す私の関数のコードフラグメント:
これを使用して、ユーザーが見たいと思うさまざまなウィンドウをすべて表示します。
ユーザーがwin.Closeで別のウィンドウに切り替えたら、win.Showでウィンドウを開いて閉じます。それはうまくいきます!
パフォーマンスを向上させるために、アプリケーションの開始時にすべてのXAMLReader.Loadを実行し、情報をディクショナリに格納する予定です。
次に、ウィンドウを呼び出すときにその情報を使用します。
これでうまくいきますが、win.Closeを使用してウィンドウを閉じると、ウィンドウの新しいインスタンスを作成しましたが、win.Showでウィンドウを再度開こうとするとエラーが発生します。
System.InvalidOperationExceptionウィンドウを閉じた後、可視性を設定したり、Show、ShowDialog...を呼び出したりすることはできません。
しかし、Dictionaryメソッドを使用せずにXAMLReader.Loadを直接使用する場合は機能します-何かアイデアはありますか?どういうわけか、XamlReader.Loadを返すことによって得られるウィンドウは、dictから保存された情報とは異なるように見えますか?私は何かが欠けていますか?前もって感謝します!
wpf - XamlReaderを介して解析されたUserControlにCanvas.Leftを設定する
私はWPFで少し遊んだことがあります。私がやりたいのは、カスタムコントロールをテンプレートパレットウィンドウから別のウィンドウのキャンバスにドラッグし、そこにそのカスタムコントロールのクローンを作成することです。これは、Visioで表示されるものと非常によく似ています。
パレットからテンプレートコントロールのクローンを作成するために、XamlWriterとXamlReaderのシリアル化および逆シリアル化機能を悪用します。
ドロップコールバックには、次のコードがあります。
私のユーザーコントロールは次のようになります。
ただし、Canvas.SetLeft()
何Canvas.SetTop()
もしないでください。クローンは常にターゲットキャンバスの左上隅に追加されます。ユーザーコントロールの代わりに他のWPFコントロールを使用する場合、このコードは正常に機能します。
クローンされたユーザーコントロールがまだ視覚的な階層の一部ではないという問題があると思います。ただし、上記のコードを機能させるために、MSコントロールが何を改善するのか疑問に思っています。私はWPFを初めて使用するため、ユーザーコントロールを修正するために何を探すべきか正確にはわかりません。どんなポインタでも大歓迎です。
wpf - XamlReader 解析後のバインディングの復元
私の問題は次のとおりです。私のプログラムでは、ユーザーがキャンバスにシェイプ (クラス DrawingShape) を配置できるようにしています。Drawing Shape は、積み重ねられたパスとラベルをカプセル化します。
したがって、一部のビジュアル設定とラベル テキストは分離コード ファイルのプロパティにバインドされます。
これらの Drawing 図形を使用して Canvas を逆シリアル化した後、XAML と分離コード ファイルの間のバインドを復元する必要があります。私はこれを試しましたが、うまくいかないようです:
コード ビハインド プロパティに対して何を行っても (FillBrush を変更するなど)、表示された DrawingShape のビジュアルは更新されません。ここで重要なステップを見逃していますか?
私は追加shape.BeginUpdate()
し、shape.EndUpdate()
この質問を見た後: Bindings not applied to dynamic-loaded xaml
洞察に感謝します
編集 2012-09-25
バインドに依存しない別のコードを見ると、逆シリアル化後に x:Name を介して Xaml-Definition の要素を実際に参照できるかどうか疑問に思います。次のコールバックは、シェイプに対して何も行いません。
デバッグすると、 の内容が適切にshape
見えることがわかります。コマンドを 1 回実行するshape.geometryCanvas.LayoutTransform
と、恒等行列になります。2 回目の実行時shape.geometryCanvas.LayoutTransform
は、TransformGroup
2 つの要素の です。
(Xamlで宣言された)の参照geometryCanvas
は、画面で使用されているものではないようです。
silverlight - 文字列からの Silverlight LoadComponent
すべてを歓迎する
Application.LoadComponent()
基本的に、Silverlight 4 または 5 では、特定の有効な xaml コンテンツを呼び出したいと考えています。問題は、この xaml が動的に作成され、URI で使用可能なリソースに存在しないことです。
通常、これは機能します:
しかし、私は次のようなものが必要です:
XamlReader.Load()
私の xaml にはx:Class="..."
、この方法では受け入れられない が含まれているため、使用できません。
どうすれば続けられますか?文字列を何かに入れようと思ったのMergedDictionary
ですが、それを指し示すURIをどうするか。
silverlight - XamlReader.Load() を使用してファイルから Prism Regions を作成する際にエラーが発生しましたか?
Prism と MEF で Silverlight 5 を使用しています。
XAMLファイルを読み取って実行時にシェルを置き換え、そこからUIElementを作成し、古いシェルのコンテンツを新しいUIElementに置き換えようとしています。私はXamlReader.Load()
これに使用しています。
Prism 領域を作成しようとするまで、これは機能します。
プリズム領域が 1 つだけの新しいシェルを作成できますが、新しいシェルに領域が 2 つ以上ある場合、ブラウザーに空白の画面しか表示されず、エラー メッセージも表示されません。
これをデバッグする方法はありますか? そして、なぜこれが起こっているのですか?
コード:
UIElement の作成とシェルの置き換え (Shell.xaml.cs 内):
これは機能します(1つのリージョン):
これも機能します (2 つの通常のコンテンツ コントロール)。
しかし、これにより代わりに空白の画面が表示されます (2 つのプリズム領域):
c# - この例外をキャッチできないのはなぜですか?
以下をキャッチできないのはなぜXamlParseException
ですか?
[続行] ボタンをクリックすると、プログラムは通常の動作を続けます (例外がキャッチex.Message
され、コンソールに出力されます)。
問題は、Visual Studio の例外ダイアログです。なぜそれが現れるのですか?