我有一个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>
答案 0 :(得分:0)
更新:看起来这是不可能的。这不是Map本身的一个错误,但有点像。 Map使用Grid中的Canvas“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>