2

WP7 アプリケーションのマッピング機能を開発しています。現在、画鋲は円形のグラフィックとして表示されます。

バーをスライドさせることで、ユーザーがプッシュピンの円のサイズを変更できるようにする機能を作成しようとしています。アイデアは、ユーザーが 2 つのサイズの間で画鋲のサイズを変更できるということです。

したがって、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>
4

2 に答える 2

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;
}

上記のコードを参照できます...

クリック

................................................................... ...............

あなたの財産を拘束する

于 2012-10-11T06:40:13.393 に答える
1

Height プロパティを ViewModel のプロパティにバインドします。

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

ユーザーがバーをスライドすると、プロパティが変更されます。

于 2012-10-10T20:27:29.747 に答える