3

WebView にはhttp://awesomium.com/ (1.7 RC2) を、3d オブジェクトにはhttp://perspective.codeplex.com/を使用しています。

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