2011-10-04 4 views
4

나는 ResizeMode = NoResize를 설정하고 모든 제목 표시 줄과 버튼을 없애 버렸지 만 문제는 창이 최대화 된 화면의 맨 위로 끌리고 그걸 막을 수 없다는 것입니다. 어떤 사람이 전에 특정 높이와 너비로 창을 최대화하고 최소화하기위한 코드가있는이 문제에 직면 했습니까?자동으로 창을 사용하지 않도록 설정하는 방법

<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

당신은 MOUSE_MOVE()가 무엇을 보여줄 수 있습니까? 그리고 Windows 버전은 무엇입니까? –

+0

은 user32.dll 함수를 사용하고 있었지만 this.DragMove로 변경하여이 기능을 도와주었습니다. –

답변

3

왜 당신이 당신의 MaxHeight/MaxWidth 속성을 설정하지 않는 샘플 코드는? 기본 크기부터

가 가장 잘의 Loaded 이벤트에 MaxHeight/MaxWidth을 설정할 수 있습니다, SizeToContent="WidthAndHeight" 것 같다 당신의 Window

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

덕분에 나는 그것을 해결했지만 약간 다른 방법으로 너의 높이와 너비 로컬 속성을 만들었고 ActualHeight를 얻었고 System.Windows.SystemParameters.MaximizedPrimaryScreenWidth와 height를 사용하여 최대화 할 때 크기를 조정했다. 도와 줘서 고마워. –