用XAML做網頁!! 終結篇

2021-09-22 13:20:07 字數 2830 閱讀 2681

迄今為止的設計都很順利,但這次就不得不接觸我前面所說的非常糟糕的流文件了,但在此之前先來把標題弄好:

mailmail簡介

textblock

>

border

>

效果:

接下來就是流文件嵌入工作了,還記得之

這篇文章

中編輯的流文件嗎?我的計畫是使用乙個frame元素嵌入這個流文件,frame元素類似於網頁中的

iframe,相當於內嵌的乙個小瀏覽器,frame可以進行導航,這樣在需要時可以通過超連結來導航以顯示各個頻道的內容。

現在就插入乙個

frame

元素到標題下面:

source指向了我們以前編輯的那個流文件,這看起來很好,但是如果你在

ie中預覽它的效果的話,你就會震驚了:

再往下看:

如果非要我用乙個字來作出評價,還不允許帶髒字的話,那就是「慘」。

我嘗試過很多方法進行調整,比如列寬、列間距等等,均告無效,它始終都會以如此糟糕的形態出現。

分析其原因:

流文件的預設閱讀器是flowdocument

reader

,這種閱讀器過分複雜,並且我感覺很不完善。解決辦法只能是在流文件檔案中,為文件套上我們想要使用的閱讀器flowdocumentpageviewer,天哪,這令我作嘔,我還怎麼在多處重用流文件?

但這樣問題還未解決,文件被嵌入後仍然不能橫向充滿容器。

這是因為我們的frame沒有固定的尺寸,被嵌入的流文件智商很低,無法跟隨frame進行伸縮,所以始終保持在乙個窄小的橫向空間中。解決方法還是用的乙個齷齪的偏方,將

frame

的寬度繫結到上層容器的實際寬度屬性上:width=""。

這方法有個後遺症,就是假如你瀏覽器寬度在閱覽期間一直不變或者只是增大,那不會產生問題,但如果你嘗試在閱讀時縮小瀏覽器寬度,那麼頁面不會隨之縮小。

wpf的液態布局中容器與內容間無法統一的缺陷真是太糟糕了,至少我一直都沒找到優雅的方法。

除此之外,還有一點讓人不可理解,就是在此頁面定義的樣式不會影響到內嵌的流文件,也就是說想定義樣式就必須得在流文件裡定義,這再次粉碎了我重用流文件的念頭。

經過一番痛苦的蹂躪,先前的流文件被修改為這樣:

請將這個儲存為

info.xaml

,然後將

fream

元素也修改一下:

<

frame 

padding

="0,0,24,0"

source

="info.xaml"

width=""

/>

效果:

主頁面全部**:

總結可以看到,一帆風順的設計伴隨著乙個糟糕的結局結束了,流文件讓我大失所望,液態布局存在巨大缺陷。

流文件如果不能很好的重用,那麼它的意義非常渺小。

液態布局中容器和內容的尺寸衝突很可能是設計上的

bug,它們本應該通過公開的依賴屬性來完美協調,但是它們根本沒有那麼做。

我希望這些只是因為我的用法不對而造成的結果,期待能有高手指出優雅的解決方式,如果無人能予以解決,那只能寄希望於微軟完善了。

用XAML做網頁!! 開篇

這幾日一直沒發表新文章,一來是因為事比較多,二來就是我在研究使用 xaml 挑戰傳統 html 我對這次挑戰的結果打7分 xaml 在頁面布局 圖形 動畫及可控性方面的表現堪稱完美,我甚至根本想不出來有什麼能與之平分秋色 相容性方面,xaml 通吃所有 windows 平台的各種瀏覽器,它實際上都是...

OSS網頁上傳和斷點續傳(終結篇)

有了之前oss網頁上傳和斷點續傳 oss配置篇 和 ststoken篇 其萬事俱備只欠東風啦,此終結篇即將展示oss上傳檔案及斷點續傳的無限魅力.網路卡頓 延遲能續傳嗎?能!關了瀏覽器,還能續傳嗎?能!關了電腦,還能續傳嗎?能!關了電腦 跑到異地去,還能續傳嗎?能!這麼屌?就是這麼屌!下面就看看是不...

用xml和xsl做網頁例項

用xml和xsl做網頁。直接大家儲存兩個檔案執行即可。cdcatalog.xml 相當於html cdcatalog.xsl 相當於css cdcatalog.xml empire burlesque bob dylan usacolumbia 10.90 1985 empire burlesqu2...