0

多数のパネル コントロールを含むユーザー コントロールがあります。ユーザー コントロールには、ユーザー コントロールに含まれるいくつかの変数の値に基づいて、各パネルの可視性を設定するロジックがあります。

次の列挙を追加して、この機能を強化したいと思います。

public enum Visibility
{
    Default,
    Always,
    Never
}

whereDefaultは現在のロジックを使用してパネルの可視性を設定しますが、Always(明らかに) パネルを常に表示し、常にNeverパネルを非表示にします。

PanelVisiblityまた、開発者が展開できるような名前の「ネストされた」設計時プロパティを追加し、以下にリストされているパネル名を表示しVisibilityて、それぞれの列挙から値を割り当てることができるようにしたいと考えています。

次のようなプロパティを追加すると:

public partial class MyControl : UserControl
{
    public Visibility ActivePanel { get; set; }
    public Visibility CodePanel { get; set; }
}

ActivePanelおよびプロパティが Visual Studio の [プロパティ] ウィンドウに表示され、CodePanelそれらを列挙型の 3 つの値のいずれかに設定できます。ただし、コードをリファクタリングして、次のようなネストされたプロパティを作成しようとすると:

public partial class MyControl : UserControl
{
    public class PanelVisibility
    {
        public enum Visibility
        {
            Default,
            Always,
            Never
        }

        public Visibility ActivePanel { get; set; }
        public Visibility CodePanel { get; set; }
    }
}

展開可能なプロパティを取得せずPanelVisiblity、無効なプロパティを取得しVisiblityます。値は、クラスの名前空間に「PanelVisibility」を加えたものです。

この検索の言い回しでさまざまなバリエーションを Google で検索しましたが、探しているようなものを見つけることができませんでした。

どんな方向性でも大歓迎です。

4

1 に答える 1

0

DockPanel が提供するのと同じ機能を探しているようです。

車輪を再発明する代わりに、次のような利用可能な実装を使用することをお勧めします。

http://msdn.microsoft.com/en-us/library/system.windows.controls.dockpanel.aspx

http://dockpanel2012.codeplex.com/

https://github.com/dockpanelsuite/dockpanelsuite

于 2013-10-09T22:15:51.013 に答える