繁体   English   中英

窗口标题栏中的按钮

[英]Buttons in window title bar

我正在尝试实现自定义窗口chrome。 我正在使用Miscrosoft.Windows.Shell命名空间。 当我在标题栏上放置按钮时,它对事件是透明的。 当我将鼠标悬停在默认按钮上时,它应该具有浅蓝色背景,但是没有这种效果。 不在标题栏内的另一个按钮正确触发事件。 自定义窗口

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:shell="http://schemas.microsoft.com/winfx/2006/xaml/presentation/shell"
    Title="MainWindow" Height="600" Width="800" Background="#2D2D30" Name="MyWindow"
    WindowStartupLocation="CenterScreen" AllowsTransparency="True" WindowStyle="None">
<Window.Style>
    <Style TargetType="Window">
        <Setter Property="shell:WindowChrome.WindowChrome">
            <Setter.Value>
                <shell:WindowChrome CaptionHeight="25" GlassFrameThickness="0"
                        CornerRadius="0" ResizeBorderThickness="7"/>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="WindowState" Value="Maximized">
                <Setter Property="shell:WindowChrome.WindowChrome">
                    <Setter.Value>
                        <shell:WindowChrome CaptionHeight="32" GlassFrameThickness="0"
                        CornerRadius="0" ResizeBorderThickness="7"/>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Style>
<Grid>
    <Grid.Style>
        <Style TargetType="Grid">
            <Setter Property="Margin" Value="7,0,7,7"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=MyWindow, Path=WindowState}" Value="Maximized">
                    <Setter Property="Margin" Value="7,7,7,7"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Grid.Style>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <DockPanel LastChildFill="False" Grid.Row="0" Height="32">
        <Button DockPanel.Dock="Right" Width="32" Height="32"/>
    </DockPanel>
    <Border Background="#1E1E1E" Grid.Row="1">
        <Button Width="100" Height="100"/>
    </Border>
</Grid>

你应该添加附加属性“shell:WindowChrome.IsHitTestVisibleInChrome”= true,这应该修复你的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM