我正在开发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;
}
你可以参考上面的代码。。。
点击
绑定您的房产