0

我正在尝试实现一个自定义控件,它将根据 3 种不同的控件状态显示不同的内容。我通过向我的控件添加一个状态和 3 个不同的内容属性来实现这一点。

我现在所拥有的就是这样。

  1. 用户将CurrentState属性设置为"Default""CurrentStep"或之一"Completed"
  2. 控制通过 切换到不同的视觉状态VisualStateManager
  3. 控制 3 个不同的默认模板集Visibility属性ContentPresenters以显示单个内容。

这一切都没有问题。我正在努力做的是启用设计时支持。我唯一能做的就是将属性设置ContentProperty为内容属性之一,以便 Blend 在其控制树中将此属性显示为子属性。但是,这仅允许在设计时编辑一个内容属性。

我还能做些什么来为我的控件添加设计时支持?

4

1 回答 1

1

我不会创建具有多个 contentPresenter 的自定义控件。

为了实现您想要做的事情,大多数时候,您创建一个带有命名部分的控件(默认的 winrt 控件模板使用这种“命名部分”机制)。当您的自定义控件状态发生变化时,您只需显示/隐藏一个或多个命名部分。

通过这种方式,您可以提供一个默认控件模板,其中包含您需要的所有命名部件,并且要自定义控件,您可以覆盖默认模板并定义您自己的部件。取决于状态的显示/隐藏逻辑将保持不变,但目标控制选择取决于编写模板的人。

于 2013-04-24T15:04:50.807 回答