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

更新:看起来这是不可能的。这实际上并不是地图本身的错误,但它确实是。地图使用网格“RootElement”内的画布。此 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 回答