2010年7月12日 星期一

WPF 教學網站心得摘要 lesson 21-24

看完 微軟所提供的教學影片 所紀錄下來的心得摘要

網址
http://msdn.microsoft.com/zh-tw/netframework/cc963622.aspx


#21 控制項的資料繫結技巧 #4 – 階層式資料繫結
1. 引用cs 檔 在xaml
ex. 引用 Demo 的空間 (空間定義在Data.cs)並叫做 src
即code 為 "Demoxmlns:src="clr-namespace:Demo"

2. grid 裡面定資源 命名為 dso 型別是 LeagueList
ex. ObjectDataProvider x:Key="dso" ObjectType="{x:Type src:LeagueList}"

3. 定義 tree view 引用 dso
ex. <TreeViewItem Header="Demo #1"
ItemsSource="{Binding Source={StaticResource dso}}"
/>


4. 利用HierarchicalDataTemplate 來延伸裡面的定義
ex. <HierarchicalDataTemplate
DataType="{x:Type src:League}"
ItemsSource="{Binding Path=Divisions}"
>
<TextBlock Text="{Binding Path=Name}" />
</HierarchicalDataTemplate>


5. 同一資源 也可以用不同的地方引用 如 MenuItem


#22 XPS 文件處理



1. XPS 格式 一種文件交換格式,由MS所定義
支援的package :
System.IO.Packaging
System.Windows.Xps.Packaging

2. 除code引用之外,若系統已有支援XPS,則可以使用列印的方式產生

3. Office"12" Open XML Formats 也可以

4. 所有這種格式其實都是一個zip檔,改副檔名為zip後就可以解壓縮

5. 也可以自行定義

6. 在程式中可以用 doncument view 存放xps文件
7. 加入 ReachFramwork 元件 參考, 就可以使用XpsDocument 的物件,在用documentViewer1轉換後才可以在畫面上使用
ex. XpsDocument doc = new XpsDocument(@"C:\demo.xps", FileAccess.Read);
FixedDocumentSequence fds = doc.GetFixedDocumentSequence();
documentViewer1.Document = fds;


8. 呼叫列印對話方塊列印檔案
宣告 PrintDialog,
ex. PrintDialog pd = new PrintDialog();
// 設定列印範圍
pd.PageRangeSelection = PageRangeSelection.AllPages;
// 設定可否改變視窗大小
pd.UserPageRangeEnabled = true;

列印檔案
ex.
XpsDocument doc = new XpsDocument(@"C:\demo.xps", FileAccess.Read);
FixedDocumentSequence fds = doc.GetFixedDocumentSequence();
/// pd.PrintDocument(檔案序列,說明)
pd.PrintDocument(fds.DocumentPaginator, "Demo #1");


9. 加入 system.printing
code
/// 宣告 LocalPrintServer
LocalPrintServer lps = new LocalPrintServer();
/// 宣告 列印序列
PrintQueue pq = lps.DefaultPrintQueue;
/// 加入列印序列 pq.AddJob(序列名稱,檔案位置,是否進行多工緩衝處理)
pq.AddJob("Demo #1", @"C:\demo.xps", false);



# 23 3D 繪圖 #1 – 3D 繪圖概念與 3D WPF 組成元件

1. WPF 要顯示3D 的話要使用 Viewport3D 標籤

2. 元件: 模型、攝影機、光源

3. PerspectiveCamera Position 標籤:
設定
a. Position, 三維作標
b. LookDirection 攝影機的方向
c. UpDirection 法向量, 0,1,0 正常、0,-1,0 上下相反

4. 光源
a. AmbientLight(環繞光源), ex.室內
b. DirectionalLight(方向性光源) ex. 陽光照射
c. PointLight(點光源) ex. 蠟燭光
d. SpotLight(聚光燈光源) ex. 聚光燈

5. Demo 是 y 軸在旋轉

6. 在 ModelVisual3D 設定 模型內容、光源

7. 其他範例, 材質設定、光源設定


#24 3D 繪圖 #2 – 3D 模型顯示與處理

1. 在 Viewport3D 定義
模型 、光源 : ModelVisual3D 元素
攝影機 camera: Viewport3D.Camera


2. MeshGeometry3D 建立 3D 模型

3. GeometryModel3D.Material 定義圖案顏色

4. 模型是在原點 0,0,0

沒有留言: