使用C#(Telerik)在WPF中自定义弹出窗口设计

3
我正在按钮单击事件中显示一个弹出窗口。我在该弹出窗口中放置了一个自定义用户控件,因此每当弹出窗口显示时,该自定义用户控件将被显示。但现在我需要修改自定义控件。 当前弹出窗口中的自定义控件如下所示:

enter image description here

但我希望角落看起来像下面的图片。怎么做呢?我需要在我的控件中有那个尖锐的角落,并且每当弹出窗口显示时,我需要那个尖锐的角点。

enter image description here

以下是按钮及其弹出窗口的代码

 <telerik:RadButton Name="btnH" Grid.Column="1" HorizontalAlignment="Left" Margin="444,56,0,0" Grid.Row="2" VerticalAlignment="Top" 
                 Width="23" Height="23" BorderThickness="6" BorderBrush="#4E4E4E" Click="btnH_Click" >
            <Image Source="Images/help.png" />
        </telerik:RadButton>
        <Popup PopupAnimation="Fade" Placement="Mouse" AllowsTransparency="True" StaysOpen="False" x:Name="TooltipPopup" >
            <Border Background="AntiqueWhite" CornerRadius="0" BorderThickness="1">
                <StackPanel Margin="1" Orientation="Horizontal" >
                    <local:UCToolTip></local:UCToolTip>
                </StackPanel>
            </Border>
        </Popup>
2个回答

2

以下是XAML的示例:

<Grid Width="300" Height="200">
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid Background="Orange">
        <!--Your content here-->
    </Grid>
    <Polygon Grid.Row="1"
        Points="0,0 15,0, 0,30" Stroke="Orange" Fill="Orange" />
</Grid>

enter image description here


如何移除那个黑色背景。我无法移除用户控件的背景。 - Dah Sra
@dahsra 我图片中的黑色背景来自于 Visual Studio XAML 设计器,实际上控件是透明的。UserControl 默认情况下具有透明背景。你一定在某个地方将背景设置为了黑色。 - Glen Thomas
如果我在XAML中设置了背景,它仍然会显示backgroundcontrol。 - Dah Sra
@dahsra 如果您删除AntiqueWhite边框背景会发生什么? - Glen Thomas
用户控件背景颜色即使在WP中设置为透明也不会改变。 - Dah Sra
@dahsra从弹出窗口的Border控件中删除Background="AntiqueWhite" - Glen Thomas

1
在您的提示控件中,您可以使用网格将两个元素绘制在一起。第一个元素是带有自定义PathGeometry形状的画布,这是一个很好的资源:

https://msdn.microsoft.com/en-us/library/ms747393(v=vs.100).aspx

然后,使用当前的内容将背景设置为透明,并使其占据网格中相同的单元格,以便它出现在形状的上方。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接