2011-07-10 58 views
1

我開始學習SL ...... 我試圖讓大小X的MediaElement的,並在電影的底部框架一些字幕將運行。 我無法理解,如果我需要絕對位置或別的東西。如何做的Silverlight覆蓋元素

請指點

感謝

回答

3

如果你需要我們作爲你只需把你的TextBlock中的MediaElement下,在網格上,並需要給VerticalAllignment財產上XAML底部的字幕。它會結束它。喜歡這個;

<Grid> 
     <MediaElement/> 
     <TextBlock VerticalAllignment="Bottom"/> 
    </Grid> 

如果您是silverlight的新手,您可以參考Grid Layout作爲相對定位。並且可以給你的文本塊或任何你想要的東西只需要看一下intellisense(如果使用VS),你會明白,如果你使用表達式混合,它會更容易用戶界面。

如果你想使用絕對定位你需要使用帆布代替網格佈局,其相同的,你可以用幾乎沒有問題改變任何東西到畫布上。在畫布中,您需要使用左側屬性和右側屬性,而不是所有的名稱。喜歡這個;

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

另一種選擇是stackpanel它不是真的適合LayoutRoot,但它對控件非常好。所以如果你想讓你的字幕留在你的電影中,你應該像這樣使用StackPanel;

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

所以總結一下;

- 如果你希望你的字幕在您的電影使用網格狀的第一個例子的頂部,

- 如果你有一個固定的大小和你想隨時隨地把你的字幕,你想用帆布,

-and,如果你想要把你的字幕在你的電影使用的StackPanel。

- 我的個人選擇將是網格。 =)

欲瞭解更多信息,您可以檢查這篇文章似乎是一個很好的一個! http://weblogs.asp.net/scottgu/pages/silverlight-tutorial-part-2-using-layout-management.aspx

編碼愉快!

1

的TextBlock;將覆蓋(網格佈局內)MediaElement的,只是因爲它是在MediaElement的後聲明。 VerticalAlignment =「底部」將它放置在網格的底部。您可能希望將網格的寬度和高度(而不是MediaElement)設置爲視頻大小。 MediaElement將自動調整大小以拉伸整個網格的大小。

<Grid x:Name="LayoutRoot" Width="480" Height="320"> 
    <MediaElement/> 
    <TextBlock TextWrapping="Wrap" VerticalAlignment="Bottom"/> 
</Grid>