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