2011-07-10 8 views
1

私はSLを学び始めています... サイズXのMediaElementを作成しようとしていますが、ムービーフレームの下部には実行される字幕がいくつかあります。 私は絶対的な立場などが必要かどうか理解できませんでした。する方法Silverlightオーバーレイ要素

それはMediaElementの後に宣言されているという理由だけでのTextBlockは(グリッドレイアウト内)のMediaElementをオーバーレイします

おかげ

答えて

3

あなたはちょうどあなたのグリッド上のMediaElementの下であなたのTextBlockを置く必要があるとXAMLの一番下のようVerticalAllignment性を付与する必要が字幕として私たちにそれをする必要がある場合。そしてそれは終わるでしょう。このような;

シルバーライトを初めて使用している場合は、グリッドレイアウトを相対的な配置として参照できます。あなたのテキストブロックや何かに余裕を持たせることができます。インテリセンス(VSを使用している場合)を見てみましょう。表現ブレンドを使用している場合は、UIでもっと簡単になります。

絶対配置を使用する場合は、グリッドレイアウトの代わりにキャンバスを使用する必要があります。同じものをキャンバスに変更することはほとんど問題ありません。キャンバスでは、allignmentsではなくleftとrightのプロパティを使用する必要があります。このような;

<Canvas> 
     <MediaElement/> 
     <TextBlock Canvas.Left="0" Canvas.Top="400"/> 
    </Canvas> 

もう1つのオプションはStackPanelで、LayoutRootにはあまり適していませんが、コントロールにはかなりいいです。字幕をムービーの下に収めるには、このようにStackPanelを使用する必要があります。

<StackPanel Orientation="Vertical"> 
     <MediaElement/> 
     <TextBlock/> 
    </StackPanel> 

あなたはあなたの字幕が最初の例のように、ムービーの使用グリッドの上になりたい-IF

あなたが固定サイズを持って、あなたはどこでもあなたがキャンバスを使用したいあなたの字幕を配置したい-IF、

- 動画の下に字幕を配置する場合は、StackPanelを使用します。

- 自分の個人的な選択はグリッドになります。 =)

詳細については、この記事をチェックしてみてください。 http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-2-using-layout-management.aspx

ハッピーコーディング!

1

をアドバイスしてください。 VerticalAlignment = "Bottom"はグリッドの下部に配置します。グリッドの幅と高さ(MediaElementの代わりに)をビデオのサイズの幅と高さに設定するとよいでしょう。 MediaElementは、グリッドのフルサイズを拡大するために自動的にサイズを変更します。

<Grid x:Name="LayoutRoot" Width="480" Height="320"> 
    <MediaElement/> 
    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom"/> 
</Grid> 
関連する問題