2

このような簡単な設定があります。

  1. XAML の ContentControl
  2. ContentControl へのコード ビハインドの adorner レイヤーに AdornerY を追加します。
  3. AdornerY のテンプレートは、カスタム ControlTemplate AdornerTemplateY に設定されています

1 と 2 で問題が発生しないと確信しているので、3 のコードをここに投稿します。

Visual Studio Express はエラーに対してあまり友好的ではなく、単に次のように表示されます。

タイプ 'System.ArgumentException' の初回例外が PresentationFramework.dll で発生しました

コードの何が問題になっていますか? 本当にありがとう。

class AdornerTemplateY : ControlTemplate
{
    FrameworkElementFactory Chrome;

    public AdornerTemplateY(ContentControl designerItem)
        : base(typeof(AdornerY))
    {
        Chrome = new FrameworkElementFactory(typeof(Rectangle));
        Chrome.SetValue(Rectangle.NameProperty, "INTERNAL_CHROME");
        Chrome.SetValue(Rectangle.FillProperty, Brushes.PowderBlue);
        Chrome.SetValue(Rectangle.StrokeProperty, Brushes.Black);
        Chrome.SetValue(Rectangle.DataContextProperty, designerItem);
        Chrome.SetValue(Rectangle.IsHitTestVisibleProperty, true);
        this.VisualTree = this.Chrome;
        this.Triggers.Add(CreateTrigger());
    }

    private Trigger CreateTrigger()
    {
        Trigger TriggerFocus = new Trigger
        {
            Property = AdornerY.IsMouseOverProperty,
            Value = true,
            Setters =
            {
                new Setter
                {
                    Property = AdornerY.VisibilityProperty,
                    Value = Visibility.Collapsed
                },
            }
        };
        return TriggerFocus;
    }
}
4

0 に答える 0