接上一篇Blend 3.0入門之SketchFlow詳解(上),因發佈限制,所以分爲兩篇,不好意思啊:-)
- 你可以通過三種方式瀏覽各個頁面
a. 通過Navigate導航,下面的滑塊控制頁面大小。這個裏面包含了很好的層次結構,當然,也包括並不直觀的控件頁嵌套
b.通過Map導航
右上角的是放大在右側View中。
c.最後一種當然就是通過你在程序中爲各個控件設定的NavigateTo來導航了
單擊數據項可以跳轉到DetailProducts頁面,但是問題也來了
爲什麼會是空白呢?這其實是數據綁定的問題,需要通過代碼解決。但是客戶可不是這麼認爲的,他要做出一些FeedBack(反饋)以提示你這邊應該顯示數據。Blend SketchFlow很好的考慮了這一點
點擊FEEDBACK ,選擇畫筆(有粗細兩種),另外一個是Eraser(橡皮擦),選擇某顏色,然後就像做批註一樣
有人問燈泡幹嘛用的?是用來隱藏頁面上批註的,注意是隱藏不是清除。 - 好的,現在客戶審批完了,需要把反饋結果發送給項目部,所以我們要把結果導出,點擊那個文件夾
- 當你的項目部門收到客戶反饋後,必須把它導入到原有工程中,才能根據要求開會作出討論並修改
按加號導入反饋文件,點亮旁邊的燈泡,看到如下圖
一切搞定,現在按客戶要求作出整改,至於怎麼修復Bug,有很多方法,這裏簡要介紹下
將下面的代碼
<Grid x:Name="LayoutRoot" Background="White" DataContext="{Binding Collection[0], Source={StaticResource SampleDataSource}}" >
<local:Head Height="108" Margin="36,4,39,0" VerticalAlignment="Top" d:IsPrototypingComposition="True"/>
<Grid Margin="51,123,37,89" Background="#FFD8DEF8" >
替換修改下
<Grid x:Name="LayoutRoot" Background="White" DataContext="{Binding Source={StaticResource SampleDataSource}}" >
<local:Head Height="108" Margin="36,4,39,0" VerticalAlignment="Top" d:IsPrototypingComposition="True"/>
<Grid Margin="51,123,37,89" Background="#FFD8DEF8" d:DataContext="{Binding Collection[0]}">
將與Name屬性綁定的TextBlock刪除
從控件庫中拖動一個ComBox_Sketch到白板,注意不要拖進藍色Grid區域中(此Grid被默認綁定到對象,不接受集合類型的控件
然後拖動Data面板中的Name屬性到ComBox,綁定完成。現在將其拖入區域中合適位置(此時是使用相對座標,而不是層嵌套,所以Blend會提示你按下Alt鍵才能把元素嵌入Grid)。
但現在還不能實現將選中項的數據對象綁定到各個控件。
我們選擇藍色區域的Grid,更改其數據綁定
點擊右邊的小正方形按鈕,選擇黃色DataBinding
最後,打開項目面板中DetailProducts.xaml.cs文件,在頁面初始化函數之後加上一句代碼:
public Screen_1_4()
{
// Required to initialize variables
InitializeComponent();
this.comboBox.Loaded +=(s,e)=>this.comboBox.SelectedIndex = 0;
} - OK,再次運行我們的程序。
點擊我們的列表項後自動跳轉到詳細頁,Ok,數據也自動綁定好了,帶可以讓用戶自由選擇。 - 關於更改樣式
先自己做個客戶自定義樣式,至於怎麼做,請參考Blend 2 的相關教程,網上有很多,這裏不詳細介紹
我的樣式已經做好,是一個ButtonStyle
在需要應用樣式的按鈕上右擊Edit Template –> Apply Resource –> ButtonStyle 勾選。
樣式更改其實很簡單,而且這樣一來,邏輯架構設計和樣式設計可以並行處理,從而真正的高效率地開發項目。
最後一睹完整的頁面
所有關於SketchFlow的介紹到此結束,若有遺漏或者疏忽,請多多交流。