日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

《Programming WPF》翻译 第7章 4.转换

發(fā)布時(shí)間:2025/3/15 asp.net 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Programming WPF》翻译 第7章 4.转换 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
《Programming WPF》翻譯 第7章 4.轉(zhuǎn)換 原文:《Programming WPF》翻譯 第7章 4.轉(zhuǎn)換

支持高分辨率顯示是WPF中的重要樣式。這是被部分地支持——強(qiáng)調(diào)了可伸縮的向量圖,而不是圖像。但是,正如使用GDI+GDI32顯示的,如果可伸縮性沒有完全集成到圖像化構(gòu)架中,獨(dú)立的分辨率實(shí)際上是非常難于達(dá)到連續(xù)性的。

WPF對伸縮的支持是建立在一個(gè)基礎(chǔ)的級別。任何用戶界面中的元素都可以應(yīng)用一個(gè)轉(zhuǎn)換,使得伸縮和旋轉(zhuǎn)任何事物都很容易。

所有的用戶界面元素都有一個(gè)transform類型的RenderTransform屬性。這是一個(gè)抽象的基類。從這個(gè)基類中派生的類實(shí)現(xiàn)了各種仿射性的轉(zhuǎn)換:旋轉(zhuǎn)、縮放、變形以及修剪。所有的這些都是便利的類,所有支持的轉(zhuǎn)換都可以被MartrixTransform表示。這包括了一個(gè)3X3矩陣,允許使用任何仿射性的轉(zhuǎn)換。

一個(gè)仿射性的轉(zhuǎn)換是,樣式排列在一條直線上的位置,在轉(zhuǎn)換仍然在一條直線上之前,在轉(zhuǎn)換之后。注意到,3-D視圖轉(zhuǎn)換沒有保持這些直線。

示例7-44顯示了RenderTransform屬性的使用。

示例7-44

<StackPanel?Orientation="Horizontal">
????
<TextBlock>
????????
<TextBlock.RenderTransform>
????????????
<TransformGroup?
>
????????????????
<ScaleTransform?ScaleX="2"?ScaleY="2"?/>
????????????????
<RotateTransform?Angle="10"?/>
????????????
</TransformGroup>
????????
</TextBlock.RenderTransform>
????????Hello,
????
</TextBlock>
????
<TextBlock>world</TextBlock>
</StackPanel>

注意到

TransformGroup在這里用來聯(lián)合兩種轉(zhuǎn)換效果。(注意到這里旋轉(zhuǎn)角度被詳細(xì)指明了度數(shù)。)結(jié)果如圖7-53所示。

7-53


在標(biāo)記中,你不會正常的用完整的詞寫出轉(zhuǎn)換,如示例
7-44所示,因?yàn)槟憧梢允褂米址唽懙恼Z法,如代碼7-45所示。

示例7-45

?

<StackPanel?Orientation="Horizontal">
????
<TextBlock?RenderTransform="scale?2,2?rotate?10">Hello,</TextBlock>
????
<TextBlock>world</TextBlock>
</StackPanel>

RenderTransform屬性允許你詳細(xì)指定轉(zhuǎn)換的序列,這將被轉(zhuǎn)換為適合的Transform對象。

RenderTransform改變元素的外觀而在外觀上沒有任何效果。注意到圖7-53中“Hello”這個(gè)TextBlock——在“world”這個(gè)塊的下面——是如何運(yùn)行的。這些元素都在一個(gè)水平的StackPanel中,因此你通常可以希望第二個(gè)元素完全的位于第一個(gè)元素的右邊,而不是交疊在一起。然而,RenderTransform對于外觀邏輯是有效可見的,因此StackPanel排列元素好像轉(zhuǎn)換并不在適當(dāng)?shù)奈恢谩?/span>

實(shí)際上,你可以經(jīng)常想通過外觀系統(tǒng)將轉(zhuǎn)換考慮在內(nèi)。在這種情形中,你不應(yīng)該使用RenderTransform屬性。代替的,你應(yīng)該使用LayoutTransform屬性,正如示例7-46所示。

示例7-46

?

<StackPanel?Orientation="Horizontal"?Margin="10"
????<TextBlock?LayoutTransform
="scale?2,2?rotate?10">Hello,</TextBlock>
????
<TextBlock>world</TextBlock>
</StackPanel>

LayoutTransform屬性在某種程度上應(yīng)用了轉(zhuǎn)換——這對于外觀系統(tǒng)是可見的。正如圖7-54所示,這意味著StackPanel現(xiàn)在為變形的文字分配了充分的空間,以及這兩個(gè)元素不再是交疊的了。

7-54


你可以應(yīng)用任何數(shù)量的轉(zhuǎn)換在可視化樹的任意地方。圖
7-55顯示了一個(gè)用戶界面——主要區(qū)域可以被旋轉(zhuǎn)和輕微地放大,但是部分內(nèi)容已經(jīng)被減少和以相反的方向旋轉(zhuǎn)。顯然地,這個(gè)特殊的示例不是十分有用,但是它確實(shí)顯示了變換可以被添加到任意的位置。進(jìn)一步而言,外觀繼續(xù)正確的工作,主要的用戶界面使用Grid來排列,以及被旋轉(zhuǎn)的內(nèi)部內(nèi)容在一個(gè)嵌入的Grid中。如果主要的窗體重新調(diào)整了大小,這兩個(gè)grid都會正確地重新排列它們的內(nèi)容,不會被裝換的出現(xiàn)而混亂。

7-55


這種對轉(zhuǎn)換的徹底支持是重要的,不是以為它支持如圖
7-55古怪的外觀,而是因?yàn)槟憧梢砸蕾囉谵D(zhuǎn)換進(jìn)行一致性和可靠性的工作。

posted on 2015-11-13 18:03 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/4962944.html

總結(jié)

以上是生活随笔為你收集整理的《Programming WPF》翻译 第7章 4.转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。