windows phone (19) 深入瞭解TextBlock

來源:互聯網
上載者:User

 TextBlock

一般用於顯示文本的元素,我們最為經常用到的是該類的Text屬性,其實顯示文本有兩種呈現方式,一個是設定內部文本Text,另一種就是在Inlines 集合中建立一個新的 Run 對象和LineBreak對象,我們稱之為內聯文本;【作者:神舟龍】

Run 標籤內容成為 Text 屬性的值,該類具有TextBlock類所具有的部分屬性,比如FontFamily,FontSize,FontStretch,Foregroud等等;

LineBreak  新起一行,是換列標籤

 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBlock x:Name="tbShow" Text="文字樣本" Foreground="White"    VerticalAlignment="Center" HorizontalAlignment="Center">
                <TextBlock.Inlines>
                    <Run Foreground="Blue" Text="ddd"  ></Run>
                </TextBlock.Inlines>
            </TextBlock>
        </Grid>

 可以看到我們在Run標籤和TextBlock標籤都設定的前景色彩和顯示的文字,可是效果如何那,效果:

 

 所以我們確定如果TextBlock標籤和TextBlock標籤內定義Run標籤的屬性相重複時,兩者的屬性互不相干,但是Run設定的顯示文本在TextBlock屬性Text之後,要把程式運行起來,設計器直接看會是這樣的錯誤結果,

 

 

 再看下面的例子,我們對Run標籤的一些屬性進行了一些羅列:

  <!--ContentPanel - 在此處放置其他內容-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBlock x:Name="tbShow" Text="文字樣本" Foreground="White"    VerticalAlignment="Center" HorizontalAlignment="Center">
                <Run Foreground="Blue">前景色彩Blue</Run><LineBreak></LineBreak>
                 <Run FontStyle="Italic">字型樣式Italic</Run><LineBreak></LineBreak>
                <Run  FontSize="30">字型30</Run><LineBreak></LineBreak>
                <Run  TextDecorations="Underline">底線</Run><LineBreak></LineBreak>
                  <Run  TextDecorations="Underline"
                         FontSize="30"
                        FontStyle="Italic"
                        Foreground="Blue"
                        Text="綜合" ></Run><LineBreak></LineBreak>
            </TextBlock>
        </Grid>

 實現的是這樣的效果:

 

 上面介紹到的是Inlines 集合的內聯文本,這是說說TextBlock屬性Text的一些特殊用法

 

案例代碼:

<!--ContentPanel - 在此處放置其他內容-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <TextBlock x:Name="tbShow"  Foreground="White"
                       VerticalAlignment="Center" HorizontalAlignment="Center"
                       Text="π表示3.14"
                       >
            </TextBlock>
        </Grid>

 它實現的效果是:

 

還比如。表示句號(。),
表示斷行符號,
表示換行,當然你可以看出格式都差不多,可以更改最後一個字母或數字看看變成什麼,比如

〇是一個圓圈;當用到換行的時候,我們可以設定TextBlock的屬性TextWrapping="Wrap",該屬性工作表示在顯示文本超過容器所限制的寬度時,文本會自動換行;

也可以設定文本對齊,TextAlignment屬性可以甚至為:left,right,center;

如果你在textblock設定了fontfamily屬性,並且名字寫錯的話,不會造成什麼後果,系統會使用預設的字型 ,但是從隱藏檔案擷取字型的話還是擷取到的是錯誤字型;

MediaElement

 

 

 表示的是播放媒體,目前支援mp4,wma,mp3,wmv(ps:我剛剛從優酷找到一個swf格式的不支援),MediaElement的屬性AutoPlay屬性預設為True,所以當視頻緩衝到可以播放的時候,視頻會自動播放

 參考書上的地址設定了播放源,xaml代碼如下

 <!--ContentPanel - 在此處放置其他內容-->
        <Grid x:Name="ContentPanel" Background="AntiqueWhite" Grid.Row="1" Margin="12,0,12,0">

            <MediaElement Source="http://www.charlespetzold.com/Media/Walrus.wmv" ></MediaElement>
        </Grid>

 在播放途中:

 

 話說這就是Charles Petzold,不管怎樣感謝他帶給我們的知識,也可訪問他本人的網站http://www.charlespetzold.com/

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.