Кнопка с выпадающим списком

114
13 ноября 2019, 06:40

Нужно реализовать кнопку следующего вида

Проблема в том, что я не понимаю на основе чего её сделать, так что бы выпадающая часть была шире самой кнопки и имела данное расположение. Не нужно писать код за меня, просто в 2ух словах скажите на основе какого элемента сделать и что менять

Answer 1

Например, можно стилизовать контекстное меню:

<Window.Resources>
    <Style x:Key="MyContextMenuStyle" TargetType="ContextMenu">
        <Setter Property="HorizontalOffset" Value="-18"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ContextMenu">
                    <Grid Background="Transparent">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>
                        <Path Data="M10,10 L18,0 L26,10" Fill="LightGray" Stroke="Black"/>
                        <Border x:Name="Border" Grid.Row="1" Background="LightGray" BorderThickness="1" BorderBrush="Black" Padding="0,3">
                            <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle" />
                        </Border>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Window.Resources>
<Grid>
    <Button Content="Кнопка" HorizontalAlignment="Center" VerticalAlignment="Center">
        <Button.ContextMenu>
            <ContextMenu Style="{DynamicResource MyContextMenuStyle}">
                <MenuItem Header="Элемент 1"/>
                <MenuItem Header="Элемент 2"/>
                <MenuItem Header="Элемент 3"/>
                <MenuItem Header="Элемент 4"/>
            </ContextMenu>
        </Button.ContextMenu>
    </Button>
</Grid>

READ ALSO
Кастомный шрифт

Кастомный шрифт

Использую в проекте свой кастомный шрифт, в свойствах текст бокса указал его, но я так понимаю он будет только у меня работать

130
Как &ldquo;добавить&rdquo; SFML в проект?

Как “добавить” SFML в проект?

Я добавил необходимые ссылки на DLL в SFML(первая картинка), и пытаюсь скомпилировать программу, но вылезает ошибка (вторая картинка)

120
Обновление окна WPF C#

Обновление окна WPF C#

Только начал изучать wpf, так что не кидайте тапками:) У меня есть функция, которая создает новое окно с прогрессбаром, получает файлы по sftp (SSHNET)...

146