Silverlight 绕过任意内容控件

Silverlight 绕过任意内容控件,silverlight,esri,Silverlight,Esri,我有一个Esri ArcGis地图控件,我想将其边缘环绕。我还使用Prism4.0/MEF和SL4 我尝试将其放置在边框中,但这不起作用(Esri控件加载到另一个模块中的MapRegion中): 更新:看起来这是不可能的。这并不是地图本身的一个bug,但有点像。地图在网格“RootElement”中使用画布。此画布包含地图的图像。当使用画布时,它不尊重给定的边界。您可以使用以下XAML重现该错误 <Border BorderBrush="Red" BorderThickne

我有一个Esri ArcGis地图控件,我想将其边缘环绕。我还使用Prism4.0/MEF和SL4

我尝试将其放置在边框中,但这不起作用(Esri控件加载到另一个模块中的MapRegion中):


更新:看起来这是不可能的。这并不是地图本身的一个bug,但有点像。地图在网格“RootElement”中使用画布。此画布包含地图的图像。当使用画布时,它不尊重给定的边界。您可以使用以下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>


Thx Shwan。我已经创建了一个MapStyles.xaml,从App.xaml引用。当放大和缩小时,我会看到一点圆角,但当释放缩放(滚轮)时,我会被填满,没有显示圆角……帕特里克,看起来这实际上是不可能的。我更新了我的帖子
<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>