Пользовательское окно WPF - PullRequest
0 голосов
/ 20 февраля 2020

Я хочу получить пользовательское окно, например

enter image description here

Мой код

     Height="800" Width="450" WindowStyle="None" ResizeMode="NoResize" Background="Transparent" AllowsTransparency="True">
<Grid>
    <Border Background="#FFFFFF" BorderBrush="LightGray" BorderThickness="3" CornerRadius="30 30 30 30">
    </Border>
</Grid>

Но я не понимаю, как изменить геометрию, чтобы получить эту стрелку на вершине. Можете ли вы помочь мне со ссылкой (изменение геометрии)?

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Вот идея, может быть, она поможет вам выбрать правильное направление: enter image description here

<Window x:Class="Test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="450" Width="800" 
        WindowStyle="None" ResizeMode="NoResize" WindowStartupLocation="CenterScreen"
        Background="Transparent" AllowsTransparency="True" SnapsToDevicePixels="True">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Canvas Grid.Row="0" Panel.ZIndex="5" HorizontalAlignment="Center" Height="12.5">
            <Polygon Points="15,15 20,15 10,0 0,15" Height="14" Width="20" Fill="White" Stroke="LightGray" StrokeThickness="1"/>
        </Canvas>
        <Border Grid.Row="1" BorderThickness="1" Background="White" BorderBrush="LightGray" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
        </Border>
    </Grid>
</Window>
0 голосов
/ 22 февраля 2020

Правильный ответ:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Canvas Grid.Row="0" Panel.ZIndex="1" HorizontalAlignment="Center" Height="12">
        <Polygon Points="20,15 10,2 0,15" Height="14" Width="20" Fill="White" Stroke="LightGray" StrokeThickness="2" Canvas.Left="-10"/>
    </Canvas>
    <Border Grid.Row="1" Background="White" BorderBrush="LightGray" BorderThickness="2" CornerRadius="30 30 30 30">
    </Border>
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...