Как я могу полностью настроить всплывающее окно из MenuItem? - PullRequest
2 голосов
/ 09 сентября 2011

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

Я ищу что-то вроде этого:

<Menu>
    <MenuItem Header="MyCustomMenu">
        <MenuItem.PopupTemplate>
            <ControlTemplate>
                <Image Source="SexyImage"/>
            </ControlTemplate>
        </MenuItem.PopupTemplate>
    </MenuItem>
</Menu>

Ответы [ 2 ]

2 голосов
/ 09 сентября 2011

Вам необходимо переопределить шаблон MenuItem, так как Popup является его частью, взгляните на шаблоны по умолчанию , чтобы получить представление о том, как должен выглядеть шаблон.MenuItem имеет TemplatePartAttribute для указанного всплывающего окна.

1 голос
/ 09 сентября 2011

Определите следующие стили в ресурсах вашего приложения:

Пример переопределения стиля для MenuItem:

<Style TargetType="MenuItem">
            <Setter Property="OverridesDefaultStyle" Value="True"/>
            <Setter Property="Foreground" Value="Black"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="MenuItem">
                       .... here is your custom template

Переопределение стилей ContextMenu:

<Style TargetType="ContextMenu">
            <Setter Property="SnapsToDevicePixels" Value="True"/>
            <Setter Property="OverridesDefaultStyle" Value="True"/>
            <Setter Property="Grid.IsSharedSizeScope" Value="true"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ContextMenu">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...