
VB.NET, C#, PowerShell, Silverlight, WPF, LINQを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つ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表示領域を超えたものはクリッピングされる、ということがわかります。
サンプルは、こちらからダウンロードできます。