2017-02-23 4 views
1

要素を受け取り、トグルボタンで表示/非表示するWPFカスタムコントロールを操作しています。デザイン時にUIElementsをカスタムコントロールに追加

隠す要素は、デザイン時にコントロールのユーザーによって定義される必要があります。

私のコントロールの重要な部分は、次のようになります。

MyCustomControl.cs

... 
public UIElement InnerContent 
    { 
     get { return (UIElement)GetValue(InnerContentProperty); } 
     set { SetValue(InnerContentProperty, value); } 
    } 

    public static readonly DependencyProperty InnerContentProperty = 
     DependencyProperty.Register("InnerContent", typeof(UIElement), typeof(MyCustomControl)); 
... 

そして、このように対応するのContentPresenter:

<ContentPresenter Height="0" 
        x:Name="ToggleRegion" 
        Content="{Binding Path=InnerContent, RelativeSource={RelativeSource AncestorType=local:MyCustomControl}}"> 
</ContentPresenter> 

私の問題は今、それは、そのIコンテンツを開始時に非表示にしたいので、ContentPresenterの高さを0にする必要があります。自分のコントロールのユーザーがデザイン時にドラッグアンドドロップで要素を追加できるようにする方法はありますか? このコントロールはXAMLで完全に機能するはずです。コードビハインドで定義されているのは、プロパティだけです。

ありがとうございました。

+0

AllowDropプロパティを有効にして、Drop/DropComplete、drop ...などのイベントから作業する必要があります。 –

+0

私はVisual Studioツールキットから要素をドロップするユーザーを許可したい場合でも、ドロップイベントを実装する必要がありますか? – Febertson

+0

はい、それ以外の場合は、あなたが落としたものをどのように処理するかはわかりません...さらに、ドロップできるアイテムと許可されていないアイテムのカーソルを変更することができます。 –

答えて

0

ContentPresenterが0の高さに設定されていない場合でも、UIElementsをコントロールにドラッグアンドドロップすることはできません。

デザイン時にWPFコントロールのドラッグアンドドロップについて同様の質問が表示されます。
WPF - How to enable dragging controls into ContentControl at Design-Time?
How to make custom WPF ContentControl that supports drag-and-drop at design time?

私の意見に対して、コンテンツ/ユーザーコントロールのデザイン時の間にドラッグ・アンド・ドロップを可能にするための任意の公式の方法は何にありません、それはデザインだけでサポートされていません。パナール、グリッド、またはボーダーから継承することを検討する必要があります。

関連する問題