【发布时间】:2011-11-16 15:27:50
【问题描述】:
我正在尝试将样式应用到来自 bing 地图 silverlight 类的 MapPolyline。
我已经定义了这种风格:
<Style x:Key="routeStyle" TargetType="map:MapPolyline">
<Setter Property="Stroke">
<Setter.Value>
<SolidColorBrush Color="Magenta" />
</Setter.Value>
</Setter>
<Setter Property="StrokeThickness" Value="10" />
</Style>
运行时出现此错误:
在类型“Microsoft.Maps.MapControl.MapPolyline”中找不到属性“Stroke”。
与此矛盾的是:
http://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.mappolyline_members.aspx
我想知道它是否正在努力寻找该属性,因为它是在基类中声明的。所以我尝试了这个:
<Style x:Key="routeStyle" TargetType="mapCore:MapShapeBase">
<Setter Property="Stroke">
<Setter.Value>
<SolidColorBrush Color="Magenta" />
</Setter.Value>
</Setter>
<Setter Property="StrokeThickness" Value="10" />
</Style>
但还是得到了:
在类型“Microsoft.Maps.MapControl.Core.MapShapeBase”中找不到属性“Stroke”。
我是否遗漏了一些明显的东西?
【问题讨论】:
-
从该链接中,我没有看到 MapPolyline 或 MapShapeBase 上的 Stroke 或 StrokeThickness 暴露的任何 DependencyProperty。你确定这是一个依赖属性吗?
-
控件似乎正在使用 Shape 类的 DP,所以我怀疑这是问题所在。您也许可以执行 Property="Shape.StrokeProperty" 之类的操作。
-
啊哈哈。我正在查看这部分文档,它没有提到任何关于为 DP 服务的内容。 msdn.microsoft.com/en-us/library/… 当然,当您深入了解特定文档时,它会提到它必须是 DP:msdn.microsoft.com/en-us/library/…
-
我刚刚尝试过 Property="shapes:Shape.StrokeProperty",但在“MapPolyline”类型中找不到属性“StrokeProperty”。所以它似乎也行不通。
-
AndrewS:是否愿意将此添加为答案,以便我可以将其标记为这样?因为你是和我一起解决这个问题的人,甚至提出了建议。
标签: silverlight styles