如何将ContextMenu放入Window.Resources

问题描述 投票:0回答:1

您可以看到,我能够将Height属性和Foreground属性放入Window.Resources

<Window x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">

<Window.Resources>
    <Style TargetType="{x:Type TextBox}">
        <Setter Property="Height" Value="50"/>
        <Setter Property="Foreground" Value="Green"/>
    </Style>
</Window.Resources>

<Grid>
    <TextBox Text="StackOverFlow">
        <TextBox.ContextMenu>
            <ContextMenu Background="Blue"/>
        </TextBox.ContextMenu>
    </TextBox>
</Grid>

</Window>

如何将<ContextMenu Background="Blue"/>放到Window.Resources?

c# wpf vb.net xaml
1个回答
0
投票

您可以尝试以下操作,只需将上下文菜单放在单独的资源中

    <Window.Resources>
        <ContextMenu x:Key="ContextMenu" Background="Blue"/>
        <Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
            <Setter Property="Height" Value="50"/>
            <Setter Property="Foreground" Value="Green"/>
            <Setter Property="ContextMenu" Value="{StaticResource ContextMenu}"/>
        </Style>
    </Window.Resources>

    <Grid>
        <TextBox Text="StackOverFlow"/>
    </Grid>
© www.soinside.com 2019 - 2024. All rights reserved.