我正在开发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>
答案 0 :(得分:1)
将Height属性绑定到ViewModel属性。
<Ellipse
Width="50"
Height="{Binding ItemHeight}"/>
当用户滑动栏时更改属性。
答案 1 :(得分:1)
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;
}
你可以参考上面的代码......
............................................... ..................
绑定你的财产