HIRO's.NET

VB.NET, C#, PowerShell, Silverlight, WPF, LINQ Tipsサイト

 VB.NET, C#, PowerShell, Silverlight, WPF, LINQを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


Silverlightの開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > Silverlight Tips > 入門 Tips メニュー

06.キャンバスオブジェクト その2

 
UPDATE:2008/06/05    
 
<< 前のTips  次のTips >> 



キャンバスオブジェクト」で、HTMLにSilverlightを表示するには、下記のようなJScriptを準備し、幅と高さを設定することを説明しました。

function createSilverlightPlugin()
{  
    Silverlight.createObject(
        "sample4_1.xaml",               // xamlファイルの参照先
        parentElement,                  // 親要素の定義
        "sample4_1",                    // SilverlightプロジェクトのユニークID
        {                               
            width:'300',                // Silverlightオブジェクトの幅
            height:'300',               // Silverlightオブジェクトの高さ
            inplaceInstallPrompt:false, // インストールプロンプトを適所に表示するかどうか決定
            background:'#FF0000',       // 背景色
            isWindowless:'false',       // Windowlessモードによるプラグインを表示するかどうか決定
            framerate:'24',             // フレームレート最大値
            version:'1.0'               // Silverlightのバージョン番号
        },
        {
            onError:null,               // OnErrorのときのfunction名
            onLoad:null                 // OnLoadのときのfunction名
        },
        null);                          // イベントハンドラ名
}

上記の場合はHTMLに300x300のSilverlightオブジェクト表示エリアが作成されます。
Canvasオブジェクトもまた、サイズを設定することが可能です。
以下はCanvasのサイズを200x200(要素HeightとWidthを指定)にします。またCanvasエリアがわかるようにBackground要素を使用して背景色をGrayにしておきます。

<Canvas
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="200" Width="200">

</Canvas>

そしてこのCanvasに、Canvasのサイズを超える円(300x300)を表示したらどうなるか実験してみたいと思います。
XAMLファイルは以下の通りです。

<Canvas
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="200" Width="200">
    
    <Ellipse
    Height="300" Width="300"
    Stroke="Black" StrokeThickness="3" Fill="Blue" />
    
</Canvas>


実行結果はこちらを参照してください。
青がSilverlight表示エリア、灰色がCanvasです。
円のサイズはCanvasより大きいのですが、クリッピングされることなく表示されることがわかります。
では、次に円のサイズをSilverlight表示エリアよりも大きくしたらどうなるか実験してみたいと思います。
円のサイズを400x400にします。

<Canvas
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="200" Width="200">
    
    <Ellipse
    Height="400" Width="400"
    Stroke="Black" StrokeThickness="3" Fill="Blue" />
    
</Canvas>

実行結果はこちらを参照してください。
ごらんの通り、Silverlight表示領域を超えた部分はクリッピングされます。
上記のことから
Cavasオブジェクトに追加したオブジェクトは、Canvasサイズより大きなものを表示することができるが、Silverlight表示領域を超えたものはクリッピングされる、ということがわかります。
サンプルは、こちらからダウンロードできます。

 
 
<< 前のTips  次のTips >>