2009-12-23 113 views
1

我一直拉着我的頭髮在這一整天。由於某些原因,當我在使用某些自定義控件時設置了網格時,網格行的實際高度會發生變化,並且無法使用我給出的高度值。我原本以爲是因爲我在代碼中加載了自定義控件,但即使我將自定義控件取出,問題仍然存在。下面是我對XAMLWPF網格行高度與我輸入的高度不匹配

<Window x:Class="Pokemon_Planner.PokePlan" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="PokePlan" Height="600" Width="800"> 
<Grid x:Name="myGrid"> 

    <Grid.RowDefinitions> 
     <RowDefinition Height="25" Name="row0"></RowDefinition> 
     <RowDefinition Height="Auto" Name="row1"></RowDefinition> 
     <RowDefinition Height="48" Name="row2"></RowDefinition> 
     <RowDefinition Height="Auto"></RowDefinition> 
     <RowDefinition Height="Auto"></RowDefinition> 
     <RowDefinition Height="Auto"></RowDefinition> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"></ColumnDefinition> 
     <ColumnDefinition Width="Auto"></ColumnDefinition> 
    </Grid.ColumnDefinitions> 
    <StackPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="0"> 
     <ComboBox Name="cmbSort" Width="100"> 
      <ComboBoxItem Content="Name"></ComboBoxItem> 
      <ComboBoxItem Content="Type"></ComboBoxItem> 
      <ComboBoxItem Content="Element"></ComboBoxItem> 
      <ComboBoxItem Content="BP"></ComboBoxItem> 
      <ComboBoxItem Content="Min Damage"></ComboBoxItem> 
      <ComboBoxItem Content="Max Damage"></ComboBoxItem> 
     </ComboBox> 
     <Button Name="btnSort" Click="btnSort_Click">Sort</Button> 
     <Button Name="btnRefresh" Click="btnRefresh_Click">Refresh</Button> 
     <Button Name="btnFilter">Filter</Button> 
    </StackPanel> 
    <StackPanel Grid.Column="0" Grid.Row="2" Orientation="Horizontal" VerticalAlignment="Top" Name="stkMoveSet1"> 

    </StackPanel> 
    <StackPanel Grid.Column="0" Grid.Row="3" Orientation="Horizontal" Name="stkMoveSet2"> 

    </StackPanel> 
    <ScrollViewer Grid.Row="1" Grid.Column="1" Grid.RowSpan="6" Height="Auto" Name="scrollViewerMoves" > 
     <StackPanel Grid.Row="1" Grid.Column="1" Grid.RowSpan="6" Name="moveStackPanel"></StackPanel> 
    </ScrollViewer> 
</Grid> 

這是設置爲具有48的高度仍然是高度集中的行,但「實際身高」是446這是真的還是擰我的網格向上。數字不盡相同,我嘗試了很多不同的組合數字和自動設置,但我似乎無法讓這一個窗口行爲正確。有任何想法嗎?

回答

0

您可能需要將「row2」網格行高度定義更改爲「auto」,並將「scrollViewerMoves」滾動查看器的高度設置爲48。水木清華這樣的:

... 
<RowDefinition Height="Auto" x:Name="row2"></RowDefinition> 
... 
<ScrollViewer Grid.Row="1" Grid.Column="1" Height = "48" Name="scrollViewerMoves" > 
... 

我想這應該做你需要什麼, 問候

+0

非常感謝你,塞爾日。這讓我走上了正軌。 scrollviewer不在第2行,所以我更改了第2行和第3行的堆棧面板,它的工作非常好!現在的問題似乎是scrollviewer,因爲它讓第一行變得很大,現在其他的都在控制之下。我試圖改變它的大小,這並沒有太大的作用,然後我擺脫了行距和東西排列正確。除了scrollviewer本身。 我希望滾動查看器的選擇範圍從row1到屏幕的底部,但沒有rowspan時它在row2開始時不可見。有沒有解決這個問題的方法? – Califer 2009-12-23 05:27:51

+0

我想滾動查看器的高度回到「自動」應該讓它橫跨行,我猜這樣strth: ..ScrollViewer Grid.Row =「1」Grid.Column =「1」Grid.RowSpan =「6」高度=「自動」.. – 2009-12-23 16:07:35

+0

它必須在Windows上工作,併爲我工作的很好;解析PDF文件可能會有問題,但通常您會收到來自gs的錯誤消息,並說明丟失或損壞的內容;你可以發佈你的pdf文件somewere在文件共享服務,所以我可以嘗試轉換它 – 2009-12-23 16:37:17