コードネーム“WPF/E” Dec 2006 CTP

WPF/EのCTPがついに提供されました。WindowsMac用のラインタイムインストーラSDK、サンプルがリリースされています。

ASP.NET | The ASP.NET Site


Download details: "WPF/E"(codename) CTP for Windows (Dec 2006)


Download details: "WPF/E"(codename) CTP for Mac (Dec 2006)


Download details:"WPF/E"(codename) CTP SDK Dec 2006


Download details:"WPF/E"(codename) CTP Sample Pack (Dec 2006)



Windows用のランタイムは、Internet Explorer 6.0と7.0、Firefox 1.5.0.8と2.0に対応しているようです。
Mac用のラインタイムは、MacOSX 10.4.8でSafariFirefox 1.5.0.8に対応しているようです。


SDKをインストールすると、下記のフォルダにVisual Studio 2005用のVSパッケージがインストールされるテンプレートのインストーラがあるのですが、これをインストールするにはASP.NET | The ASP.NET Siteをインストールする必要があるようです。Visual Studio 2005 SP1 BetaのWebアプリケーションプロジェクトではインストールが許可されないようです。

C:\Program Files\Microsoft SDKs\WPFE\Tools

そして、Visual Studio 2005 Web Application Projectsは英語版のVisual Studio 2005じゃないとインストールできなかったりします。


ものすごく簡単なサンプルを作ってみました。
html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>"WPF/E" CTP (December 2006) - Film Strip</TITLE>
 
<SCRIPT src="js/aghost.js" type="text/javascript" ></SCRIPT>
<SCRIPT src="js/main.js" type="text/javascript" ></SCRIPT>
 
<BODY>
    <div id='wpfeControlHost' style="width:320; height:240; background:White">
        <script type='text/javascript'>                      
            new agHost("wpfeControlHost",            // hostElementID (HTML element to put WPF/E
                                                    // ActiveX control inside of -- usually a <div>)
                       "wpfobj",                    // ID of the WPF/E ActiveX control we create
                       "320",                       // Width
                       "240",                        // Height
                       "#ff999999",                  // Background color
                       null,                        // SourceElement (name of script tag containing xaml)
                       "xaml/simple.xaml",        // Source file
                       "false",                      // IsWindowless
                       "24",                        // MaxFrameRate
                       null);                        // OnError handler (method name -- no quotes)
        </script>
    </div>
 
</BODY></HTML>


main.js
var wpf;
 
function Slides(target) {
    wpf = document.getElementById("wpfobj");
}
 
function downButton (sender, eventArgs)
{
    var o = wpf.FindName("MessageText");
    o.SetValue("Opacity", 1);
}


XAML
<Canvas
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Loaded="javascript:Slides">
 
  <TextBlock x:Name="ButtonText" FontSize="48" Text="Click Me!" MouseLeftButtonDown="javascript:downButton"/>
  <TextBlock x:Name="MessageText" Text="Hello WPF/E" FontSize="48" Opacity="0" Canvas.Top="60" />
 
</Canvas>


"WPF/E"はWPFから3D部分を抜いたサブセットだと思っていましたが、実際にはまったくの別モノと言ってよさそうです。
"WPF/E"にはTextBoxやListBoxなどのおなじみのコントロールはないようです。またほとんどのクラスがWPFにも存在しているクラス名となっているようですが、メンバは異なる(減っている)ようです。


一応作ったサンプルはここに置いておきます。