【发布时间】:2012-02-29 09:45:09
【问题描述】:
我正在开发一个位置感知应用程序,我希望在其中拥有具有图像的自定义图钉,并且当您点击图像时,会添加一个标签。我已经尝试了几个解决方案...
我从这段代码开始,来自这篇文章:http://igrali.wordpress.com/2011/12/06/making-a-custom-windows-phone-bing-pushpin-from-an-image/
<ControlTemplate
x:Key="PushpinMe"
TargetType="maps:Pushpin">
<Grid
Name="PushpinMeGrid"
Height="50"
Width="50"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Image
x:Name="PushpinMeImage"
Height="50"
Width="50"
Source="Pushpins/pushpinSeaplane.png" />
<TextBlock Text="{Binding Source=}"
</Grid>
</ControlTemplate>
然后我尝试将图像包装在一个按钮中,但这只会使图钉基本上不可见。然后我尝试使用我以前的一个应用程序中的控制模板,并对其进行了修改,并提出了这个:
<Button
Name="PushpinButton"
Click="Button_Click">
<Button.Style>
<Style
TargetType="Button">
<Setter
Property="Template">
<Setter.Value>
<ControlTemplate
TargetType="Button">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="*" />
<ColumnDefinition
Width="*" />
</Grid.ColumnDefinitions>
<Image
Grid.Column="0"
Grid.Row="0"
Grid.RowSpan="2"
Height="50"
Width="50"
Source="Pushpins/pushpinSeaplane.png" />
<Grid
Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition
Height="39" />
<RowDefinition
Height="*" />
</Grid.RowDefinitions>
<Grid
Grid.Row="0"
Background="Black">
<TextBlock
Grid.Row="0"
Foreground="White"
Text="{Binding ElementName=me,
Path=Content}"
TextWrapping="Wrap"
Margin="5" />
</Grid>
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
</ControlTemplate>
仍然不是赢家 - 我无法绑定按钮的内容,因此也无法绑定文本块。
会有一系列图钉,有不同的图像,不同的标签,所以理想情况下,我想拿出一个我可以使用的模板,并从代码中绑定图像和标签。按钮单击事件的代码就像使文本块可见或折叠一样简单。
我知道我的第二个示例非常丑陋,但我试图使视觉效果看起来正确 - 我会根据视觉效果对其进行修改,但目前,我需要弄清楚如何绑定图像和代码中的文本。按钮点击事件现在只与一个消息框一起工作(表明它注册了点击事件)。
感谢您的帮助。
【问题讨论】:
标签: silverlight windows-phone-7 windows-phone