2011-10-04 4 views
4

J'ai une fenêtre que j'ai définie ResizeMode = NoResize et me suis débarrassé de toute la barre de titre et les boutons mais le problème est quand la fenêtre est traînée vers le haut de l'écran maximise et je ne peux pas arrêter cela. Est-ce que quelqu'un a fait face à ce problème avant où j'ai le code pour maximiser et minimiser la fenêtre à une certaine largeur et hauteur.Comment désactiver la fenêtre de Maximiser automatiquement?

c'est un exemple de code

<Window xmlns:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit" 
    x:Class="Custom_title_bar.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" WindowStyle="None" AllowsTransparency="True" 
    Background="Transparent" mc:Ignorable="d" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    ResizeMode="NoResize" 
    MinHeight="180" MinWidth="180" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    SizeToContent="WidthAndHeight" WindowStartupLocation="CenterScreen" 
    VerticalContentAlignment="Center" VerticalAlignment="Top" WindowState="Normal"> 
<Grid Name="Main" > 
    <Border Name="MainWindow" CornerRadius="1" Background="White" 
    BorderBrush="AliceBlue" MouseDown="move_window" > 
     <Grid> 
     <DockPanel> 
      <DockPanel DockPanel.Dock="Top" Height="26"> 
       <Border CornerRadius="1"> 
       <Border.Background> 
        <LinearGradientBrush> 
         <GradientStop Color="White" Offset="0.0"/> 
         <GradientStop Color="BurlyWood" Offset="0.25"/> 
         <GradientStop Color="Bisque" Offset="0.5"/> 
         </LinearGradientBrush> 
        </Border.Background> 
       <Grid> 
        <DockPanel> 
        <Image MouseDown="MINIMIZE" 
        Source="/Custom%20title%20bar;component/Images/minimize.png" 
        Grid.ColumnSpan="4" /> 
        <Image MouseDown="MAX_RESTORE" 
         Source="/Custom%20title%20bar;component/Images/Restore.png"     
         Grid.ColumnSpan="4" /> 
         <Image MouseDown="EXIT" 
         Source="/Custom%20title%20bar;component/Images/close.png" /> 
         <TextBlock/> 
        </DockPanel> 
       </Grid> 
      </Border> 
     </DockPanel> 
     </DockPanel> 
     </Grid> 
    </Border> 
    </Grid> 

+0

Pouvez-vous montrer ce que MOUSE_MOVE() fait? Et quelle est votre version de Windows? –

+0

utilisait les fonctions user32.dll mais l'a changé pour this.DragMove il m'a aidé avec cela. –

Répondre

3

Pourquoi ne vous attachez pas votre MaxHeight/MaxWidth propriétés?

Étant donné que votre taille par défaut semble être SizeToContent="WidthAndHeight", il pourrait être préférable de régler le MaxHeight/MaxWidth en cas Loaded de votre Window

this.MaxHeight = this.ActualHeight; 
this.MaxWidth = this.ActualWidth; 
+0

merci je l'ai résolu mais peu de manière différente puis les vôtres ont fait les propriétés locales de hauteur et de largeur et obtenu ActualHeight et puis quand il est maximisé en utilisant System.Windows.SystemParameters.MaximizedPrimaryScreenWidth et taille le redimensionnant. Merci encore pour votre aide. –

Questions connexes