1

WPFプロジェクトでCefSharpを使用しています。CefSharp.Wpf.WebView次のように、クラスをMainWindow.xamlに追加しています。

_webView = new WebView(url, _settings);

私のXAMLレイアウトは次のようになります。

<Window x:Class="WPFContainer.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Test Project" Height="400" Width="930" Initialized="OnWindowInit" StateChanged="OnWindowStateChanged" Closing="OnWindowClose">
  <DockPanel Name="MainDockPanel" Height="400" Width="930">
    <Grid VerticalAlignment="Top" HorizontalAlignment="Left" ShowGridLines="True" Name="mainGrid" >
        <Grid.ColumnDefinitions>
            <ColumnDefinition Name="col1" Width="600" />
            <ColumnDefinition Name="col2" Width="330"/>
        </Grid.ColumnDefinitions>
    </Grid>
  </DockPanel>
</Window>

を削除して直接Grid追加すると、問題なく表示されます。しかし、にを追加しようとすると、表示されません。幅/高さを指定するとグリッド列に表示されますが、機能せず、100%の幅と高さが必要です。webViewDockPanelwebViewcol1GridHorizontalAlignment.Stretch

webView動作しないグリッドにを追加するための私のコード:

mainGrid.Children.Add(_webView);
Grid.SetColumn(_webView, 0);
4

1 に答える 1

0

問題は、ChildrenプロパティがInitializeComponentに入力されていることです。初期化後にグリッドに子を追加する場合、それはObservableCollectionではないため、Childrenコレクションに追加するためのプロパティ変更イベントはありません。新しいコレクションを作成する場合、プログラムで機能すると思いますが、xamlでWebビューを定義することで回避できます(パラメーターのないコンストラクターがある場合)。次に、OnLoadedでURLと設定を挿入できます。

于 2012-11-19T04:05:57.977 に答える