2016-03-30 16 views
1

Ich versuche, benutzerdefinierte Fenster Chrome zu implementieren. Ich verwende Miscrosoft.Windows.Shell-Namespace. Wenn ich die Schaltfläche in der Titelleiste plaziere, ist sie für Ereignisse transparent. Die Standardschaltfläche sollte einen hellblauen Hintergrund haben, wenn ich die Maus darüber bewege, aber diesen Effekt hat sie nicht. Weitere Schaltflächen, die nicht in der Titelleiste enthalten sind, lösen Ereignisse ordnungsgemäß aus. = True, sollte dies Ihre Fehler beheben: Custom windowSchaltflächen in der Titelleiste des Fensters

<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> 

Antwort

0

sollten Sie die beigefügte Eigenschaft "WindowChrome.IsHitTestVisibleInChrome Shell" hinzufügen.

Verwandte Themen