0

エッジを丸めたい Esri ArcGis マップ コントロールがあります。Prism4.0/MEF と SL4 も使用しています。

ボーダーに配置しようとしましたが、うまくいきません (Esri コントロールは別のモジュールの MapRegion に読み込まれます)。

<Border Grid.Row="2"
                Margin="2"
                CornerRadius="25">
            <ContentControl
                prism:RegionManager.RegionName="MapRegion"
                VerticalContentAlignment="Stretch"
                HorizontalContentAlignment="Stretch">
            </ContentControl>
        </Border>
4

1 に答える 1

0

更新:これは不可能のようです。これは実際にはマップ自体のバグではありませんが、バグのようなものです。Map は、Grid "RootElement" 内の Canvas を使用します。この Canvas は、マップの画像を保持します。Canvas を使用する場合、指定された境界は考慮されません。次の XAML でバグを再現できます。

        <Border BorderBrush="Red" BorderThickness="2" CornerRadius="25">
            <Grid>
                <Grid>
                    <Canvas>
                        <Image Source="/Images/MyPicture.png"/>
                    </Canvas>
                </Grid>
            </Grid>
        </Border>

最善の方法は、マップに明示的なスタイルを設定することです。このスタイルを使用すると、使用されるすべてのマップの角が丸くなります

<Style TargetType="esri:Map">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="esri:Map">
                <Border CornerRadius="25" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
                    <Grid>
                        <Grid x:Name="RootElement" Height="Auto" Width="Auto"/>
                        <Rectangle x:Name="ZoomBox" Fill="#55FFFFFF" Stroke="Red" StrokeThickness="2" Visibility="Collapsed"/>
                    </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
于 2012-06-21T22:59:23.537 に答える