2012-01-22 55 views
2

我正在用WPF製作一個應用程序,並且我有一個帶有Awesomium WebControl的UserControl。Awesomium在WindowsBase.dll中引發ArgumentException

當我將這個UserControl的一個副本添加到我的主窗口時,我從WindowsBase.dll中得到一個ArgumentException,說「寬度和高度必須是正值」。

下面是用戶控件:

<UserControl x:Class="ForumPost.ForumPost" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" MinWidth="505" MinHeight="250" xmlns:my="http://schemas.awesomium.com/winfx"> 
<Grid Name="postGrid" Margin="5"> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 

    <Grid Background="#3166A1"> 
     <Grid.RowDefinitions> 
      <RowDefinition MinHeight="150" /> 
     </Grid.RowDefinitions> 

     <Grid.ColumnDefinitions> 
      <ColumnDefinition MinWidth="150" /> 
      <ColumnDefinition MinWidth="100" /> 
      <ColumnDefinition MinWidth="125" /> 
      <ColumnDefinition MinWidth="125" /> 
     </Grid.ColumnDefinitions> 

     <Grid Height="150"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="25" /> 
       <RowDefinition Height="125" /> 
      </Grid.RowDefinitions> 

      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition MinWidth="20"/> 
        <ColumnDefinition/> 
       </Grid.ColumnDefinitions> 

       <Image Margin="0 0 5 0" Name="specialUserFlag"/> 

       <TextBlock TextAlignment="Center" FontWeight="Bold" FontSize="16" Foreground="White" Name="postUsername" Grid.Column="1"/> 
      </Grid> 

      <Image Grid.Row="1" MaxWidth="125" MaxHeight="125" Name="postAvatar" /> 
     </Grid> 

     <TextBlock Grid.Column="2" TextAlignment="Center" FontWeight="Bold" FontSize="16" Foreground="White" VerticalAlignment="Center" Name="postTimestamp" TextWrapping="Wrap" /> 

    </Grid> 
    <my:WebControl Grid.Row="1" Name="webBrowser"/> 
</Grid>  

這裏是我的主要窗口,@LukeWoodward要求:

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" x:Class="Saxaphone.MainWindow" 
    Title="MainWindow" Height="850" Width="1600" 
    Icon="main.ico"> 

<Grid x:Name="MainGrid"> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 

    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="305" /> 
     <ColumnDefinition MinWidth="1017" /> 
    </Grid.ColumnDefinitions> 

    <TreeView x:Name="ForumView" ScrollViewer.HorizontalScrollBarVisibility="Diforumbled" Style="{DynamicResource ForumViewStyle}" SelectedItemChanged="ForumView_SelectedItemChanged" /> 

    <Grid x:Name="forumGrid" Grid.Column="1"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="512" /> 
      <ColumnDefinition /> 
     </Grid.ColumnDefinitions> 

     <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" Grid.Column="0" Height="{Binding ActualHeight, ElementName=forumGrid}"> 
       <StackPanel x:Name="forumThreads"></StackPanel> 
     </ScrollViewer> 

     <ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Auto" Grid.Column="1" Height="{Binding ActualHeight, ElementName=forumGrid}"> 
      <StackPanel x:Name="forumPosts"/> 
     </ScrollViewer> 
    </Grid> 
</Grid> 

+0

對不起,但我不能重現你得到的錯誤。我甚至試着將UserControl和WebControl的寬度和高度設置爲0,但仍然沒有得到錯誤。您可以添加您的主窗口XAML(或至少足以重現錯誤)? –

+0

我加了。我在代碼中創建用戶控件並將其放在第二個'StackPanel'上。 – Sinestro

回答

3

我現在已經能夠重現你得到的ArgumentException。我懷疑這是Awesomium中的一個錯誤。我會建議您聯繫Awesomium支持http://support.awesomium.com/

我發現下面的XAML足以重現ArgumentException。沒有必要對任何用戶控件,也不添加控件在運行時:

<StackPanel> 
    <as:WebControl xmlns:as="http://schemas.awesomium.com/winfx" /> 
</StackPanel> 

我發現,它可通過設定對WebControl明確WidthHeight來解決此問題。似乎WebControl不喜歡在StackPanel內,除非它(WebControl)具有WidthHeight設置。

0

我們意識到這個問題,它將在版本1.7的最終版本中得到修復。

相關問題