1

辐射菜单项

RadMenuItem 用于呈现菜单

 <Style TargetType="{x:Type telerik:RadMenuItem}">
    <Setter Property="HorizontalContentAlignment" Value="{Binding Path=HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" />
    <Setter Property="VerticalContentAlignment" Value="{Binding Path=VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" />
    <Setter Property="Background" Value="{StaticResource ContextMenuBackground}"/>
    <Setter Property="Foreground" Value="{StaticResource ContextMenuForeground}"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type telerik:RadMenuItem}">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="*"/>
                        <RowDefinition />
                    </Grid.RowDefinitions>

                    <Border x:Name="Border"
                        Background="{TemplateBinding Background}"
                        BorderBrush="{TemplateBinding Background}"
                        BorderThickness="2"
                        CornerRadius="5">

                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"
                                              MinWidth="17"
                                              SharedSizeGroup="Icon" />
                                <ColumnDefinition Width="Auto" MinWidth="5"
                                              SharedSizeGroup="Name" />
                                <ColumnDefinition MinWidth="5" Width="Auto" 
                                              SharedSizeGroup="Shortcut" />

                                <ColumnDefinition MinWidth="10" Width="Auto" 
                                              SharedSizeGroup="Arrow" />
                            </Grid.ColumnDefinitions>


                            <ContentPresenter x:Name="Icon"
                                          Margin="4,0,6,0"
                                          VerticalAlignment="Center"
                                          ContentSource="Icon" />

这段代码用于覆盖 menuitem 样式并设置前景属性

                            <ContentPresenter x:Name="HeaderHost"
                                          Grid.Column="1"
                                          Margin="{TemplateBinding Padding}"
                                          ContentSource="Header"
                                          RecognizesAccessKey="True" >

                                <ContentPresenter.Resources>
                                        <Style TargetType="{x:Type TextBlock}">
                                            <Setter Property="TextTrimming" Value="CharacterEllipsis"/>
                                            <Setter Property="FontSize" Value="11"/>
                                            <Setter Property="FontFamily" Value="Arial Unicode MS"/>
                                            <Style.Triggers>
                                                <Trigger Property="controls:TextBlockService.IsTextTrimmed" Value="True">
                                                    <Setter Property="ToolTip" Value="{Binding Text, RelativeSource={RelativeSource Self}}"/>
                                                </Trigger>
                                            </Style.Triggers>
                                        </Style>

                                </ContentPresenter.Resources>
                                </ContentPresenter>







                            <TextBlock x:Name="ShortCuts" Grid.Column="3" Margin="{TemplateBinding Padding}" >
                            </TextBlock>





                            <Popup x:Name="SubMenuPopup"
                               AllowsTransparency="true"
                               Focusable="false" Grid.IsSharedSizeScope="True"
                               IsOpen="{Binding Path=IsSubmenuOpen,
                                                RelativeSource={RelativeSource TemplatedParent}}"
                               Placement="Right"
                               PopupAnimation="{DynamicResource {x:Static SystemParameters.MenuPopupAnimationKey}}"
                               VerticalOffset="-3">
                                <Grid x:Name="SubMenu">
                                    <Border x:Name="SubMenuBorder"
                                        Background="{TemplateBinding Background}"
                                        BorderBrush="Gray"
                                        BorderThickness="1" 
                                        CornerRadius="5">
                                        <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle" />
                                    </Border>
                                </Grid>
                            </Popup>
                        </Grid>
                    </Border>

设置了这个分隔符属性,因为这个属性,我在 Rad 菜单项中获得了额外的行

                    <Rectangle x:Name="Separator" Grid.Row="1" 
                                Height="1" Visibility="Collapsed"  
                                Fill="{DynamicResource GridView_GridLinesItemVertical}" />






                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="attachedBehaviors:MenuItemHasSeparatorBehavior.HasSeparator" Value="True">
                        <Setter TargetName="Separator" Property="Visibility" Value="Visible"/>
                    </Trigger>

                    <Trigger Property="Role" Value="TopLevelHeader">
                        <Setter Property="Margin" Value="2" />
                        <Setter Property="Padding" Value="6,3,6,3" />
                        <Setter TargetName="SubMenuPopup" Property="Placement" Value="Bottom" />


                    </Trigger>

                    <Trigger Property="Role" Value="TopLevelItem">
                        <Setter Property="Margin" Value="2" />
                        <Setter Property="Padding" Value="6,3,6,3" />

                    </Trigger>

                    <Trigger Property="Role" Value="SubmenuHeader">
                        <Setter Property="DockPanel.Dock" Value="Top" />
                        <Setter Property="Padding" Value="0,2,0,2" />


                    </Trigger>

                    <Trigger Property="Role" Value="SubmenuItem">
                        <Setter Property="DockPanel.Dock" Value="Top" />
                        <Setter Property="Padding" Value="0,2,0,2" />

                    </Trigger>




                    <Trigger Property="Icon" Value="{x:Null}">
                        <Setter TargetName="Icon" Property="Visibility" Value="Collapsed" />
                    </Trigger>

                    <Trigger Property="IsChecked" Value="true">
                        <Setter TargetName="Icon" Property="Visibility" Value="Collapsed" />
                    </Trigger>

                    <Trigger SourceName="SubMenuPopup" Property="AllowsTransparency" Value="true">
                        <Setter TargetName="SubMenu" Property="Margin" Value="2" />
                        <Setter TargetName="SubMenu" Property="SnapsToDevicePixels" Value="true" />
                        <Setter TargetName="SubMenuBorder" Property="BitmapEffect" Value="{DynamicResource PopupDropShadow}" />
                    </Trigger>




                    <Trigger Property="IsHighlighted" Value="true">
                        <Setter TargetName="Border" Property="Background" Value="{StaticResource BR_Menu_Highlight}" />
                        <Setter Property="Foreground" Value="{StaticResource BR_SE_White}" />
                        <Setter TargetName="ShortCuts" Property="Foreground" Value="{StaticResource BR_SE_White}" />


                    </Trigger>
                    <Trigger Property="IsEnabled" Value="false">
                        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
                        <Setter TargetName="ShortCuts" Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

辐射上下文菜单

 <Style TargetType="{x:Type telerik:RadContextMenu}">
    <Setter Property="OverridesDefaultStyle" Value="True" />
    <Setter Property="SnapsToDevicePixels" Value="True" />
    <Setter Property="Background" Value="{StaticResource ContextMenuBackground}"/>
    <Setter Property="FontSize" Value="11"/>
    <Setter Property="FontFamily" Value="Arial Unicode MS"/>

    <Setter Property="Grid.IsSharedSizeScope" Value="True"></Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type telerik:RadContextMenu}">




                <Border x:Name="Border"
                        Background="{TemplateBinding Background}"
                        BorderBrush="{StaticResource ContextMenuBorderBrush}"
                        BorderThickness="1"
                        CornerRadius="5">




                    <StackPanel ClipToBounds="True"
                                IsItemsHost="True"


                        Orientation="Vertical" />
                </Border>
            </ControlTemplate>

        </Setter.Value>
    </Setter>
</Style>
4

0 回答 0