我有一个使用必应地图的 WP7 应用程序,我有多个位置的图钉。 点击图钉时,我有一个点击事件,显示带有一些文本的边框。 为了隐藏文本,我正在为地图控件使用 tap 事件,该事件将边框可见性设置为折叠:
private void map_Tap(object sender, GestureEventArgs e)
{
this.border.Visibility = Visibility.Collapsed;
}
现在,如果我要使用多个边框和文本,我将不得不像这样多次设置可见性:
this.border.Visibility = Visibility.Collapsed;
this.border2.Visibility = Visibility.Collapsed;
this.border3.Visibility = Visibility.Collapsed;
因此,我为边框创建了一个资源,以便仅引用一个边框。
<phone:PhoneApplicationPage.Resources>
<Style x:Key="BorderStyle" x:Name="border" TargetType="Border" >
<Setter Property="Background" Value="Black" />
</Style>
</phone:PhoneApplicationPage.Resources>
我在图钉中设置资源
<my:Pushpin.Content>
<Border Style="{StaticResource BorderStyle}" >
但是现在,当我在map_Tap事件中引用边框时,我得到一个System.Windows.Style不包含"可见性"的定义,因为边框不再被引用为UIElement(至少我是这样理解的)。 如何为边框元素制作样式并仍将其作为元素引用?
向你推荐这种方法,这也可能对你完成其他一些任务也有帮助。
使用类型 border
的list
,并将所有border
元素添加到其中。现在,每当你想要操作所有元素时,你都可以有一个foreach
循环并访问你想要的任何属性,例如item.Visibility
你可以根据需要操作它。这甚至可以帮助您对它们进行分类,以便您可以操纵任何特定的边框。