WPF结合了2个形状

时间:2017-12-03 15:47:55

标签: c# wpf

我尝试创建一个类似于会话气泡的形状,其中我有一个显示内容的矩形和一个角落的圆形图像,如下所示: enter image description here

我创建了边框和椭圆,但我如何安排它们看起来像我想要的?

<Border MinWidth="150" MaxWidth="500" MinHeight="150" BorderBrush="DimGray" BorderThickness="2" CornerRadius="10" Margin="80,0,0,25" />
<Ellipse Canvas.ZIndex="2" Height="75" Width="76" Stroke="DimGray" StrokeThickness="2" Fill="White"></Ellipse>

我计划将此作为模板,然后在ItemsControl中使用它。

我尝试过使用Canvas,但在将它放入ItemsControl后,所有内容都相互重叠。

请告知我该如何生成此形状。另外需要注意的是,我的窗口是可调整大小的,因此椭圆需要始终保持在边框的左下角或右下角,我不能使用边距来修复位置。

谢谢!

1 个答案:

答案 0 :(得分:0)

这非常接近你想要的......

<Grid Width="520" Height="180">
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1*"/>
        <ColumnDefinition Width="2*"/>
    </Grid.ColumnDefinitions>
    <Border MinWidth="150" MaxWidth="500" MinHeight="150" BorderBrush="DimGray" BorderThickness="2" CornerRadius="10" Margin="80,0,0,25" Grid.RowSpan="2" Grid.ColumnSpan="2"/>
    <Ellipse Canvas.ZIndex="2" Height="75" Width="76" Stroke="DimGray" StrokeThickness="2" Fill="White" Grid.Row="1"></Ellipse>
</Grid>