再ホストされたアクティビティの外観を次のように変更したい:
すでに試しましたActivityDesignerTheme
WorkflowViewElement
動作(ブレークポイント、拡張)を失いたくないので、使用せずにそれを行う必要があります。
それが不可能な場合、ActivityDesigner
ヘッダーの背景色を変更する方法はありますか?
再ホストされたアクティビティの外観を次のように変更したい:
すでに試しましたActivityDesignerTheme
WorkflowViewElement
動作(ブレークポイント、拡張)を失いたくないので、使用せずにそれを行う必要があります。
それが不可能な場合、ActivityDesigner
ヘッダーの背景色を変更する方法はありますか?
@Will
私も、DisplayNameを編集するときのActivityDesignerヘッダーのデフォルトの動作に悩まされました(特に、文字列の先頭にキャレットを配置する部分)。Reflector を使用して実装で (System.Activities.Presentation.dll) を覗いたところ、この動作の一部がOnApplyTemplateで定義されていることに気付きました。カスタム デザイナー クラスでこのメソッドをオーバーライドし、base.OnApplyTemplate() を呼び出さないだけで、ヘッダーで DisplayName を読み取り専用にすることができました (私の場合はそれだけで十分でしたが、いくつかのカスタムで遊ぶことができると思います)。そこにイベント ハンドラーを追加し、動作を微調整します)。
@Davi Fiamenghi
同じアセンブリでReflectorを使用してさらに掘り下げたところ、OnApplyTemplateで使用されているコントロールが以下で定義されていることがわかりましたsystem/activities/presentation/workflowelementdesignerdefaulttemplate.baml (System.Activities.Presentation.g.resources)。これは、ActivityDesigner (<ControlTemplate x:Key="WorkflowElementDesignerDefaultTemplate" x:Uid="ControlTemplate_1" ControlTemplate.TargetType="{x:Type swd:ActivityDesigner}">) に使用される既定のコントロール テンプレートのようです。ヘッダーの色を変更する 1 つの方法は、アプリケーションでこのテンプレートを「再作成」して、カスタム アクティビティ デザイナーで明示的に設定することだと思います。もちろん、そのアセンブリで定義されている他のリソースを参照しているように見えるため、単にコピーするだけではありません。
お役に立てれば。