3

我将http://awesomium.com/ (1.7 RC2) 用于 webview,将http://perspective.codeplex.com/用于 3d 对象。

XAML:

<p:Workshop3D>
    <p:Spherical3D ParallelCount="30" DefaultTextureMapping="True">
        <p:Spherical3D.Material>
            <DiffuseMaterial>
                <DiffuseMaterial.Brush>
                    <ImageBrush TileMode="None" Stretch="Fill" 
                                ImageSource="{Binding Path=WebTexture, ElementName=MyWpfWindow}" />
                </DiffuseMaterial.Brush>
            </DiffuseMaterial>
        </p:Spherical3D.Material>
    </p:Spherical3D>
</p:Workshop3D>

代码背后:

public MainWindow()
{
    _webView = WebCore.CreateWebView(800, 600);
    _webView.LoadURL(new Uri(@"http://www.youtube.com"));

    while (_webView.IsLoading)
        WebCore.Update();

    var buffer = (BitmapSurface)_webView.Surface;
    var bitmap = new WriteableBitmap(800, 600, 96, 96, PixelFormats.Bgra32, null);
    buffer.CopyTo(bitmap.BackBuffer, 800, 4, false, false);

    WebTexture = bitmap;

    InitializeComponent();
}

private ImageSource _webTexture;
public ImageSource WebTexture
{
   get
   {
      return _webTexture;
   }
   set { _webTexture = value; RaisePropertyChanged("WebTexture"); }
}

出于某种原因,甚至没有调用 WebTexture 的 get 访问器,所以我猜我在这里遗漏了一些东西(2 小时的 google/bing/duckduckgo 也没有带来任何东西)。

4

0 回答 0