2012-07-10 27 views
0

我對WPF非常新,似乎無法讓我的表單正確顯示。我預計有6排。前三個應該有按鈕,最後3個包含更多的網格。我是從NHibernate電子書下面的代碼,但它似乎並沒有正確顯示。可能有人來看看這個代碼,並提出任何可能的錯誤:WPF的新手。表單不能正確顯示

<av:Window x:Class="Chapter2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Title="Product Inventory" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="493" d:DesignWidth="566" SizeToContent="WidthAndHeight"> 
<av:Grid> 
    <av:Grid.RowDefinitions> 
     <av:RowDefinition Height="auto" /> 
     <av:RowDefinition Height="auto" /> 
     <av:RowDefinition Height="auto" /> 
     <av:RowDefinition Height="*" /> 
     <av:RowDefinition Height="*" /> 
     <av:RowDefinition Height="*" /> 
    </av:Grid.RowDefinitions> 
    <av:Button x:Name="btnCreateDatabase" Content="Create Database" Click="BtnCreateSessionFactoryClick"/> 
    <av:Button x:Name="btnCreateSessionFactory" Content="Create Session Factory" Click="BtnCreateSessionFactoryClick" av:Grid.Row="1"/> 
    <av:Button x:Name="btnCreateSession" Content="Create Session" Click="BtnCreateSessionClick" av:Grid.Row="2" /> 
    <av:Grid x:Name = "CategoryGrid" av:Grid.Row="3" Margin="0 10 0 0"> 
     <av:Grid.ColumnDefinitions> 
      <av:ColumnDefinition Width="Auto"/> 
      <av:ColumnDefinition Width="*"/> 
     </av:Grid.ColumnDefinitions> 
     <av:Grid.RowDefinitions> 
      <av:RowDefinition Height="Auto" /> 
      <av:RowDefinition Height="Auto" /> 
      <av:RowDefinition Height="Auto" /> 
     </av:Grid.RowDefinitions> 
     <av:TextBlock Text="Category Name:"/> 
     <av:TextBlock Text="Category Description:" av:Grid.Row="1"/> 
     <av:TextBox x:Name="txtCategoryName" av:Grid.Column="1"/> 
     <av:TextBox x:Name="txtCategoryDescription" av:Grid.Row="1" av:Grid.Column="1"/> 
     <av:Button x:Name="btnAddCategory" Content="Add Category" av:Grid.Row="2" Click="BtnAddCategoryClick" /> 
    </av:Grid> 
    <av:Grid x:Name = "ProductGrid" Margin="1,0,-1,131" av:Grid.Row="4"> 
     <av:Grid.ColumnDefinitions> 
      <av:ColumnDefinition Width="Auto"/> 
      <av:ColumnDefinition Width="*"/> 
     </av:Grid.ColumnDefinitions> 
     <av:Grid.RowDefinitions> 
      <av:RowDefinition Height="Auto" /> 
      <av:RowDefinition Height="Auto" /> 
      <av:RowDefinition Height="Auto" /> 
     </av:Grid.RowDefinitions> 
     <av:TextBlock Text="Category Name:"/> 
     <av:TextBlock Text="Category Description:" av:Grid.Row="1"/> 
     <av:TextBox x:Name="txtProductName" av:Grid.Column="1"/> 
     <av:TextBox x:Name="txtProductDescription" av:Grid.Row="1" av:Grid.Column="1"/> 
     <av:Button x:Name="btnAddProduct" Content="Add Product" av:Grid.Row="2" Click="BtnAddCategoryClick" /> 
    </av:Grid> 
    <av:Grid x:Name = "LoadCategoryGrid" av:Grid.Row="5" Margin="1,0,-1,0" > 
     <av:Grid.ColumnDefinitions> 
      <av:ColumnDefinition Width="278"/> 
      <av:ColumnDefinition Width="265"/> 
     </av:Grid.ColumnDefinitions> 
     <av:Grid.RowDefinitions> 
      <av:RowDefinition Height="Auto" /> 
     </av:Grid.RowDefinitions> 
     <av:Button x:Name="btnLoadCategories" Content="Load Categories" VerticalAlignment="Top" Click="BtnLoadCategoriesClick" Margin="0,188,186,0" /> 
     <av:ListBox x:Name="lstCategories" Margin="52,188,-55,-10" av:Grid.Column="1" /> 
    </av:Grid> 
</av:Grid> 

Window

+1

你能澄清「偏離中心」的截圖,也許你想如何顯示它的演繹? XAML文字牆傷害了我的眼睛;-) – 2012-07-10 08:24:58

+0

對不起。我正在努力。我已經解決了偏離中心的問題。那是網格比我想的主要形式更寬。我將得到一張照片,顯示它目前的樣子。 – CSharpened 2012-07-10 08:31:10

+0

我已經添加了一張圖片。您可以看到3個按鈕和一個網格可見,但最後兩個網格不可見。對不起,但我只有油漆,它不會讓我因爲某種愚蠢的原因而裁剪 – CSharpened 2012-07-10 08:35:09

回答

1

比只有一排Grid.Row="5"Grid.RowSpan="2"雜散雙重定義來定義,這兩者你現在已經固定,唯一的代碼,其他的是會影響定位的是所有虛假Margin的值。

除此之外,XAML看起來不錯。

1

最後網格重疊一個5行,該行:

<av:Grid x:Name = "ProductGrid" Margin="-1,2,1,130" av:Grid.Row="5"> 
<av:Grid x:Name = "LoadCategoryGrid" av:Grid.Row="5" Margin="3,73,-3,128" > 

將兩個網格放在同一個網格行,查看具有相同值的av:Grid.Row附加屬性。要將其中一人在一個自由的地方一個人與被改變:av:Grid.Row="4"

+0

我已經解決了這個問題,但窗口的外觀沒有改變。 – CSharpened 2012-07-10 08:33:16