首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在设计时访问UserControl的子级

在设计时访问UserControl的子级
EN

Stack Overflow用户
提问于 2012-08-22 02:32:56
回答 2查看 299关注 0票数 0

Windows 8风格的应用程序(例如"Metro"),Visual Studio 2012,XAML。

我有一个从Canvas派生的UserControl。它有一个子元素-一个多边形,它的数据绑定到一个属性(实现了INotifyPropertyChanged ):

代码语言:javascript
复制
<Canvas x:Name="MyPolygon">
    <Polygon Points="{Binding ElementName=MyPolygon,Path=MyPoints}" ... />
</Canvas>

如果我在XAML中的其他地方实例化该控件,传入一个字符串,就会设置该属性,并在设计时和运行时正确呈现Polygon:

代码语言:javascript
复制
<local:MyPolygon MyPoints="..." />

但是,更改该字符串中的值是单调乏味的。设计者更希望一些UI结(如椭圆)的集合在设计时可见,但在运行时不可见,这样他们就可以在设计器中拖动它们,并让Polygon动态地重新构建其几何体:

代码语言:javascript
复制
<local:MyPolygon>
    <Ellipse Canvas.Left="204" Canvas.Top="57" ... />
    <Ellipse Canvas.Left="166" Canvas.Top="30" ... />
    ...
</local:MyPolygon>

基本上,我希望将几何信息保存在(扩展的) .Children中。这个是可能的吗?

(可能有一些事件/构造函数,控件可以在其中检查其.Children (在插入椭圆之后),检索它们的坐标,并构建MyPoints。设计者必须触发该事件才能使几何图形在设计时可见)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-22 10:32:59

因此,我最终在椭圆所在的同一层创建了一个多边形。

代码语言:javascript
复制
<Polygon Points="{Binding ElementName=MyPoints,Converter={StaticResource PolygonConverter}}" ... />
<Canvas x:Name="MyPoins">
    <Ellipse Canvas.Left="228" Canvas.Top="69" ... />
    <Ellipse Canvas.Left="166" Canvas.Top="30" ... />
    ...
</Canvas>

绑定转换器将对象的所有.Children的坐标转换为字符串。

这在设计时和运行时都有效。

不幸的是,必须在移动椭圆之后重新构建项目,以便VS designer刷新视图并获取更改,这使得设计过程变得不那么直观。:/

票数 0
EN

Stack Overflow用户

发布于 2012-08-22 04:29:26

你看过像this这样的设计数据吗?

代码语言:javascript
复制
if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
{
    GetSampleData();
}
else GetRealData();

代码语言:javascript
复制
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

<CollectionViewSource
  x:Name="groupedItemsViewSource"
  Source="{Binding Groups}"
  IsSourceGrouped="true"
  ItemsPath="Items"
  d:Source="{Binding ItemGroups, 
    Source={d:DesignInstance Type=data:SampleDataSource, 
      IsDesignTimeCreatable=True}}"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12060942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档