2009-09-25 75 views
0

Silverlight 3;Silverlight驗證摘要屏幕房地產

我在我的網格的第一行有一個ValidationSummary。當ValidationSummary出現時,它會將我的按鈕行(第3行)從可顯示屏幕的底部推開。

<Grid HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="Auto" /> 
      <RowDefinition Height="36" /> 
     </Grid.RowDefinitions> 

     <di:ValidationSummary Grid.Row="0" /> 

     <Grid x:Name="gridOuterContentHolder" 
       Grid.Row="1"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="0.68*" /> 
       <RowDefinition Height="5" /> 
       <RowDefinition Height="0.32*" /> 
      </Grid.RowDefinitions> 
<!-- elements removed for brevity --> 

     </Grid> 

     <StackPanel x:Name="stack" 
        Grid.Row="2" 
        Orientation="Horizontal" 
        HorizontalAlignment="Right"> 
      <Button Content="Delete" 
        x:Name="btnDelete" 
        Height="20" 
        Width="75" /> 

     </StackPanel> 
    </Grid> 

我是一個代碼猴不是像素推動器,不能找出拉伸的,自動的和*的我需要的組合。任何推動者可以幫助?

謝謝, 馬克

回答

0

我能夠通過使ValidationSummary控件滾動型的兒童用maxheight集來做到這一點。這限制了驗證摘要超出父母的最大高度的能力。因爲默認情況下,validationsummary控件使用getparent()來確定他們正在驗證的控件,這就要求你在應用程序innitializes時手動覆蓋目標(在VB中,我在我的頁面的new()例程中執行它一流

MyValidationSummary.Target = TheNewGrid 

你可能不希望看到的ScrollViewer時沒有錯誤,因此它設置爲倒塌,在使其可見只有在ValidationSummary有錯誤:

Private Sub MyValidationSummary_LayoutUpdated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyValidationSummary.LayoutUpdated 
    If MyValidationSummary.HasErrors Then 
     svMyValidationSummary.Visibility = Windows.Visibility.Visible 
    Else 
     svMyValidationSummary.Visibility = Windows.Visibility.Collapsed 
    End If 
End Sub 

我似乎無法得到這個編輯器o沒有擰上xaml,這是一個鏈接: example

<ScrollViewer Visibility="Collapsed" x:Name="svMyValidationSummary" MaxHeight="200" Margin="6" BorderThickness="1"> 
    <dataInput:ValidationSummary FocusControlsOnClick="True" x:Name="MyValidationSummary"></dataInput:ValidationSummary> 
</ScrollViewer> 

<data:DataGrid Margin="10" AutoGenerateColumns="False" Width="1250" x:Name="TheNewGrid" Height="350"> 
    <data:DataGrid.Columns> 
     <local:DataGridTemplateColumnBindingText CanUserReorder="False" CanUserResize="False" 
          HeaderStyle='{StaticResource RowHeaderColumnStyle}' > 
      <local:DataGridTemplateColumnBindingText.CellEditingTemplate> 
       <DataTemplate> 
        <controlsToolkit:DockPanel HorizontalAlignment="Stretch"> 
         <StackPanel controlsToolkit:DockPanel.Dock="Right" Orientation="Horizontal"> 
          <Button ToolTipService.ToolTip="Insert an empty row" Click="btnInsertRow_Click"> 
           <Image Source="add.png"></Image> 
          </Button> 
          <Button ToolTipService.ToolTip="Copy row" Click="btnDuplicateRow_Click"> 
           <Image Source="application_double.png"></Image> 
          </Button> 
          <Button ToolTipService.ToolTip="Delete row" Click="btnDeleteRow_Click"> 
           <Image Source="delete.png"></Image> 
          </Button> 
         </StackPanel> 
         <Border BorderThickness="1" Background="PowderBlue"> 
          <TextBlock controlsToolkit:DockPanel.Dock="Left" TextAlignment="Center" HorizontalAlignment="Stretch" Text="{Binding SortNumber}"></TextBlock> 
         </Border> 
        </controlsToolkit:DockPanel> 
       </DataTemplate> 
      </local:DataGridTemplateColumnBindingText.CellEditingTemplate> 
     </local:DataGridTemplateColumnBindingText> 
    </data:DataGrid.Columns> 
</data:DataGrid>