アプリケーションで最低限のXAMLエディターをホストしていますか?
-
03-07-2019 - |
質問
アプリケーションでは、インストールの管理者がキオスクからチェックインするときに印刷される名前タグのテンプレートを設計できます(キオスクでフライトにチェックインし、搭乗券を印刷するようなものです)。
たとえば、テンプレートは次のようになります。
[FirstName] [LastName]
[Company]
[PersonImage]
[BarCode]
今、Reporting Servicesを使用して、管理者が名前タグのテンプレートを設計できるようにします(人の写真、バーコードの印刷、組織名などが必要な場合があります)。これは問題なく動作しますが、1)Reporting Servicesのレンダリングが遅く、2)アプリケーションとの統合が不十分です。VisualStudioをロードし、アプリケーションの外部で名前タグを設計する必要があります。
XAMLは、名前タグのテンプレートの設計に適しているようです。ほぼすべてのデザインをこのフォーマットで処理でき、XAML to XPSを使用して印刷できます。
私が見ている問題は、利用可能なXAMLコントロールのサブセットを使用するビジュアルデザイナーを統合する方法です。本当に必要なのは、ドラッグ/ドロップをサポートするCanvas、Grid、TextBlock、Imageなどの単純なコントロールだけです。 Visual StudioまたはSparkleのXAMLデザイナーを別のアプリケーションにホストできるかどうかについてはあまり情報がありません。誰でもアイデアはありますか? RichTextBoxはほとんど機能するように見えますが、FlowDocumentは私たちが望んでいるものではありません。アイテムをドラッグして絶対に配置できるようにする必要があります(レポートデザイナーなど)。
解決
MSデザイナーをホストできるかどうかはわかりませんが(疑いはありますが)、独自のミニエディターをかなり簡単に作成できると思います。 Canvas
で開始し、プログラムで Label
s、 TextBlock
s、またはその他の必要なものを追加します(それらを Click
Canvas.Top
/ Canvas.Left
を介してそれらを移動するハンドラ。 Canvas
は、印刷用にかなり簡単に画像にレンダリングできます。または、前述のようにXaml-Xpsにできます。
ミニXamlエディターを既に作成した人の例として Kaxaml をチェックしてください(最近更新されました) SL2へ)。他にもあるかもしれません。
EDIT 26-Jan-09:Charles Petzoldの XamlCruncher (例)-確かにVisual Studioの読み込みをしのぐ- XamlReader.Load
は試してみる価値があるように思えますか?