WP7-映射-在运行时编辑图钉模板的属性



我正在开发WP7应用程序的映射功能。目前图钉显示为圆形图形。

我正在尝试创建功能,允许用户能够通过滑动一个条来更改图钉的圆形大小。其想法是用户可以在两种尺寸之间的任何位置更改图钉的尺寸。

因此,我不想在XAML中创建2或3个预定义的图钉模板,只需在它们之间进行交换——我希望能够在用户滑动条或按住页面时实时修改模板的属性(特别是椭圆的高度和宽度)。

然而,我一直在努力做到这一点。

是否可以编辑现有模板的属性?我已经考虑过实时创建一个模板,但这似乎也不是解决方案。

根据客户的不同,页面上出现的图钉数量可能会有很大的差异。此外,我们的客户是户外类型的,许多人都在为较小的图标而挣扎,而其他人则不然。因此我对这个功能的渴望。

请找到下面的XAML,我只是想在运行时更改椭圆的大小。提前感谢您的帮助。

<ControlTemplate x:Key="PushpinControlTemplate1" TargetType="my:Pushpin">
<Grid x:Name="ContentGrid" Width="50" Height="50" >
<StackPanel Orientation="Vertical" >
<Grid MinHeight="31" MinWidth="29" Margin="0">
<Ellipse Fill="#FFFF7F00"
Margin="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Width="50"
Height="50"
Stroke="White"
StrokeThickness="3"/>
<ContentPresenter HorizontalAlignment="Center"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
Margin="4"/>
</Grid>
</StackPanel>
</Grid>
</ControlTemplate>

将Height属性绑定到ViewModel的属性。

<Ellipse 
Width="50"
Height="{Binding ItemHeight}"/>

并在用户滑动条时更改属性。

private DataTemplate CreateDataTemplate()
{
string xaml =
@"<DataTemplate
xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">
<Grid>
<Rectangle Fill=""LightGreen"" Height=""50"" Width=""250"" />
<TextBlock Text='{Binding}' FontSize='40' />
</Grid>       
</DataTemplate>";
DataTemplate dt = (DataTemplate)XamlReader.Load(xaml);
return dt;
}

你可以参考上面的代码。。。

点击

绑定您的房产

最新更新