Windows Store App的版面控制項 for XAML

by Anita 29. 一月 2014 08:56

.NET Magazine國際中文電子雜誌
者:羅慧真
稿:張智凱
文章編號:N140114403
出刊日期:2014/1/29
開發工具: Visual Studio 2012
版本:Windows Run-Time 8.0

Windows Store Apps若是使用C#或是Visual Basic語言,搭配的畫面設計是XAML,如果你過去曾經學過WPF或是Silverlight會發現它們幾乎可以說是相同的東西。

當然如果所熟知的是傳統的Windows Form,那麼它們有著一段不小的差異。在設計Windows Form時必須事先指定控制項的位置及寬高[1]。這樣的缺點它無法動態根據內容自動調整大小及相對位置。

XAML則是多元化的,它在設計時就考慮到各種情況,有需要固定位置、寬高的,有些則需要能根據內容自動決定控制項的大小,有些則需要像HTML一樣有表格功能,可以將控制項定在表格中。多元化目的是可盡量滿足多方需求!

Visual Studio的XAML設計工具

在XAML的編輯功能上,Microsoft在Visual Studio 2012提供很好的設計介面。當你開啟Visual Studio、建立Windows市集專案,接著映入眼簾的是一個上方為設計界面、下方為XAML編輯器的畫面。

clip_image002

圖1 - XAML設計介面

如果注意看,會看到視窗中央有幾個控制按鈕:

clip_image003

圖2 - 設計介面的控制按鈕

clip_image004,調整設計介面的放大及縮小,預設是顯示為100%。clip_image005,顯示或隱藏貼齊格線,啟用此功能設計介面會出現格線(如圖3)。clip_image006,啟用或關閉貼齊格線的功能。clip_image007,啟用或關閉對齊到對齊線的功能,啟用此功能時控制項與控制項互相靠近時,會自動出現對齊線(如圖4)。clip_image008將設計及XAML編輯畫面上下對調。clip_image009開啟文件大綱。

clip_image011

圖3 - 顯示格線

clip_image012

圖4 - 對齊線

文件大綱

XAML是一種XML的文件,具有巢狀元素。文件大綱可以讓人清楚整體設計的結構。舊版的文件大綱僅能檢視結構及選取物件,Visual Studio 2012的文件大綱,加了許多新功能,像是鎖定控制項,抑制顯示控制項等功能。

按一下clip_image001或是從選單「檢視」-->「其他視窗」-->「文件大綱」也可以按快速鍵「Ctrl」+「Alt」+「T」。項目右方有兩個按鈕,分別代表隱藏及鎖定。「隱藏」開關可以將項目暫時隱藏,以方便你調整被其覆蓋的控制項,隱藏僅限於設計介面,不影響執行結果。「鎖定」開關可以將項目鎖住,鎖定後的項目無法在設計介面移動,目的是避免固定好的配置不小心移動位置。

clip_image003[4]

圖5 - 文件大綱

安排控制項的位置與大小

將控制項放入的方式有兩種:

1. 從「工具箱」選取控制項、雙擊控制項

clip_image007[4]

圖6 - 在工具箱上雙擊控制項

2. 從「工具箱」選取控制項,在設計視窗目標位置拖拉到適當大小

這是最常見的作法。

clip_image009[4]

圖7- 拖曳滑鼠定控制項大小

Width、Height

角邊控制點是用來操作控制項的寬高,在控制項的左上、左下、右上、右下各有一個在選取控制項時它們就會出現,滑鼠移在「角邊控制點」上面按滑鼠左鍵移動就可變更控制項的Width、Height屬性。

clip_image011

圖8 - 四個角邊都有角邊控制項

Margin,邊界值

絕大多數的XAML控制項是沒有控制項定位的屬性(像是Top、Left或者Location等)。XAML的控制項不是以Top、Left屬性做為絕對定位點,而是以Margin屬性做為相對定位點。

Margin屬性是一個四個像素組合的值,在XAML的表示法如下:

Margin="90,170,0,0"

四個值以逗點隔開,分別代表「左、上、右、下」邊界距離。下圖控制項出現左方及上方各出現一條邊界距離提示線(文後簡稱:邊距提示線)。出現邊距提示線的那兩個邊可以看到它的邊界是個「鎖鍊」,代表控制項與此邊界會維持固定距離。沒有出現邊距提示線的邊界上則是出現「開放的鎖鍊」,代表控制項與此邊界不會維持固定距離,此邊距值為零。

clip_image013

圖9 - 邊距提示線、邊距提示點

水平與垂直對齊屬性

當控制項拖拉到設計畫面時,它會隨著設計者拖曳動作記錄控制項的Width、Height及Margin還有HorizontalAlignment、VerticalAlignment屬性。Width、Height及Margin屬性相信各位已經在二節了解它們的關係。接下來再來看看什麼是HorizontalAlignment、VerticalAlignment屬性?

HorizontalAlignment是控制項的水平對齊屬性,VerticalAlignment則是垂直對齊屬性,XAML如下:

<Rectangle Fill="#FFF4F4F5" Height="165" Margin="195,160,0,0"
Stroke="Black" VerticalAlignment="Top" Width="210"
HorizontalAlignment="Left"/>

代表控制項水平對齊方向是左方,垂直對齊方向是上方。

HorizontalAlignment屬性可以設成:

  • Left,水平對齊左邊界
  • Right,水平對齊右邊界
  • Center,水平對齊中間位置
  • Stretch,水平拉寬,若有設定Width屬性,看不出Stretch效果

VerticalAlignment屬性可以設成:

  • Top,垂直對齊上方邊界
  • Botton,垂直對齊下方邊界
  • Center,垂直對齊中間位置
  • Stretch,垂直拉長,若有設定Height屬性,看不出Stretch效果

如果你將HorizontalAlignment修改成Right,VerticalAlignment改成Center,看起來會像這樣:

clip_image015

圖10 - HorizontalAlignment與VerticalAlignment的效果

它的XAML:

<Rectangle Fill="#FFF4F4F5" Height="165" Margin="0" Stroke="Black" Width="210" HorizontalAlignment="Center" VerticalAlignment="Bottom"/>

如果將HorizontalAlignment設為Stretch,但Width屬性仍有設定,那麼將完全無法顯示Stretch的效果,如下:

clip_image017

圖11 - Width、Height屬性有設定時,Stretch失效。

它的XAML是:

<Rectangle Fill="#FFF4F4F5" Height="165" Margin="0" Stroke="Black" Width="210" VerticalAlignment="Bottom"/>

如果將Width屬性拿掉像這樣:

<Rectangle Fill="#FFF4F4F5" Height="165" Margin="0" Stroke="Black" VerticalAlignment="Bottom"/>

那Stretch效果就可以呈現:

clip_image019

圖12 - 去掉Width屬性,控制項被拉寬了!

重點整理:

這一段講了五個重要的屬性,讓我們再來複習一下:

  • 管理控制項大小的 – Width、Height
  • 管理控制項與邊界距離的 – Margin
  • 管理控制項對齊的 – HorizontalAlignment、VerticalAlignment

原則上若是Width、Height,控制項會以此為大小的優先依據。但若是Margin同時設定上、下邊距那麼將會影響Height屬性,Margin同時設定左、右邊距那麼將會影響Width屬性。依此分析若要以控制項「大小」計算優先權會是:

  • Margin
  • Width、Height
  • HorizontalAlignment、VerticalAlignment

而影響控制項顯示「位置」的屬性是Margin及HorizontalAlignment、VerticalAlignment。

重設版面配置

另外值得一提的是,在我們為控制項排版後,可能隨時想重設這三組屬性(管大小的、管邊界的、管對齊的),除了直接修改XAML之外,Visual Studio還提供了「重設版面配置」選單功能,只要在控制項上按滑鼠右鍵選取「重設版面配置」將會出現四個選項:

  • 全部,重設Width、Height、HorizontalAlignment、VerticalAlignment及Margin。
  • 大小,重設Width、Height。
  • 對齊,重設HorizontalAlignment、VerticalAlignment。
  • 邊界,重設Margin。

重設的意思是就是將在XAML裡的與版面配置有關的屬性除去,讓它以預設行為執行。例如,按下「重設版面配置」à「全部」,那麼整個控制項將填滿所屬容器(配置控制項—此例為Grid):

clip_image023

圖13- 重設全部配置

它的XAML將完全清楚與配置有關的那五個屬性

<Rectangle Fill="#FFF4F4F5" Stroke="Black" />

Panel控制項

Panel類的控制項在版面配置上佔有很重要的角色。如果沒有Panel類控制項,所有的頁面將變成這樣。下圖是我將Page中預設的Grid項目移去,然後放入Ellipse,無法放入第二個物件,一個畫面就只能有一個項目。

clip_image025

圖14 - Page只能裝進一個項目

Panel類控制項就是容器控制項(借用以前Windows Forms的術語),畫面上所需控制項都需要裝在Panel類項目中。Panel類控制項有Children屬性可以包含一個以上的項目,不同Panel類項目提供的排版方式也有些差異,Windows Runtime提供四種Panel控制項:

  • Canvas
  • Grid
  • StackPanel
  • VariableSizedWrapGrid

下表為簡略說明:

Grid

clip_image027

圖15 - Grid

可以規畫欄及列,變成一個格子控制項,子項目使用附加屬性Column、Row設置到某個格子,使用Margin控制位置。若沒有欄或列,相當於一個大格子。

StackPanel

clip_image028

圖16 - StackPanel

子項目以堆疊方式呈現,可以是水平或是垂直方向陳列。

Canvas

clip_image029

圖17 - Canvas

子項目(控制項)利用附加屬性Top、Left定位,提供絕對定位功能。

VariableSizedWrapGrid

clip_image030

圖18 - VariableSizedWrapGrid

也是格線式的Panel,自動根據子項目數量或是MaximunRowsOrColumns屬性決定欄或列的數(自動畫格子,原則上一項一格)

Grid與表格

Grid類別是最常用的版面類的控制項,Visual Studio的XAML類專案(Windows Store Apps、WPF、Silverlight)預設範本也是選用Grid為面版。配合Margin屬性它可以做出傳統Windows Form的絕對定位點效果,也可以是很有彈性的相對定位功能…等如我們在<<0.2安排控制項的位置與大小>>一節所談之細節。

更棒的是它可以做出表格效果,並將控制項定位在表格中。

如何切割表格呢?

只要選取Grid物件,然後在Grid的左、上方外圍區域滑動,會出現橘黃色的切割線,按下左鍵即可切割出格線。

clip_image032

圖19 - 切割垂直格線

這樣切出來的格子會有三格,它的XAML如下:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">

    <Grid.ColumnDefinitions>

        <ColumnDefinition Width="177*"/>

        <ColumnDefinition Width="257*"/>

       <ColumnDefinition Width="932*"/>

    </Grid.ColumnDefinitions>

</Grid>

配合上圖應該很容易可以看的懂這段XAML的意思,這代表切出三條垂直格線,但Width的屬性是比較奇怪一些「177*」、「257*」、「932*」是什麼呢?

Grid所在的容器本身可能會變大或縮小或者使用者設備的解析度不同,所以切割出的格子也不能是死板板,應該隨著所需的解析度一起變更,格子的寬、高定義也必須是有彈性的,它們的計算方式有三種:

  • 星形(Star)
  • 像素(Fixed)
  • 自動(Auto)

星形 -- 按比例

就是XAML裡Width或Height屬性會帶「*」的值,它們的計算方式以此為例是「177: 257: 932」,所以假設Grid的實際寬度是1920像素那麼第一格寬度就是247像素、第二格是361像素、第三格是1310像素,計算公式如下:

1920 / (177+257+932) = 1.4055

  • 第一格:177 * 1.4055 = 249
  • 第二格:257 * 1.4055 = 361
  • 第三格:932 * 1.4055 = 1,310

下圖是使用模擬器調整解析度為23” (1920*1080),白色數字為該區塊的欄寬。(若要取得實際像素可以使用ActualWidth、ActualHeight屬性)

clip_image034

圖20 - 按比例切割

像素 -- 固定像素

切格線時預設會按比例計算,若要變成是固定的,只要將滑鼠移到那格的上方(Column)或左方(Row)數字的下拉按鈕,可以選擇「星形」、「像素」、「自動」。

clip_image036

圖21 - 星形、像素、自動按鈕

第一欄變成固定之後,Grid的XAML定義變成:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">

   <Grid.ColumnDefinitions>

      <ColumnDefinition Width="177"/>

      <ColumnDefinition Width="257*"/>

      <ColumnDefinition Width="932*"/>

   </Grid.ColumnDefinitions>

</Grid>

實際執行的結果是,左起第一欄寬度固定,其餘兩欄按照比例分配。

clip_image038

圖22 - 左1設為固定寬度

自動 -- 由內容的寬或高決定

除了按比例、固定像素之外,另一個選擇是「自動」它的意思是按格子內容決定格子的寬或高。設定時前請小心,如果格內暫無內容又設為自動,那個格子可能會看不見(因為沒有內容,於是自動計算寬或高為零)。

<Grid x:Name="LayoutRoot" Background="{StaticResource ApplicationPageBackgroundThemeBrush}" SizeChanged="LayoutRoot_SizeChanged">

   <Grid.ColumnDefinitions>

      <ColumnDefinition Width="Auto"/>

      <ColumnDefinition Width="257*"/>

      <ColumnDefinition Width="932*"/>

      </Grid.ColumnDefinitions>

       <Rectangle Fill="Red" Width="300" />

…其餘省略…

這個例子是將放在第一欄的物件(Rectangle)寬度設為300。其他兩欄依舊按比例計算。

clip_image040

圖23 - 設為Auto

提示!

本文以Column(縱向格)解說,它必須定義Width屬性,你也可以玩玩Row(橫向格)它必須定義Height屬性,一樣選取Grid的「藍色透明外框」然後在左方適當的位置按一下就可切出橫向格,相同的也可按比例、固定、自動來計算高度唷!

變更格子

若要變更格線的寬高很簡單,只要用滑鼠移到格線即可。

clip_image042

圖24 - 調整格子的寬高

若要移除或者細部編輯欄(Column)或行(Row)的內容,則是在欄(Column)的上方或是行(Row)左方的數字下拉按鈕點一下,會出現像是「刪除欄」…等項目,直接點選需要的功能即可。

clip_image044

圖25  - 編輯欄或列

將控制項放到格子內

如何將控制項放到格子內?

只要控制項放入Grid中,就會多了一些與Grid有關的屬性,像是Column、Row、ColumnSpan、RowSpan等:

  • Grid.Column,指定控制項放在第幾個索引「縱向格」,索引從零開始計算
  • Grid.Row,指定控制項放在第幾個索引「橫向格」,索引從零開始計算
  • Grid.ColumnSpan,指定控制項跨越幾個「縱向格」,值為1時代表控制頁保留在本格不跨越到其他格內
  • Grid.RowSpan,指定控制項跨越幾個「橫向格」,值為1時代表控制頁保留在本格不跨越到其他格內

如果在XAML中,它像是這樣:

<Grid x:Name="LayoutRoot" Background="{StaticResource ApplicationPageBackgroundThemeBrush}" SizeChanged="LayoutRoot_SizeChanged">

    <Grid.ColumnDefinitions>

        <ColumnDefinition Width="177"/>

        <ColumnDefinition Width="557*"/>

        <ColumnDefinition Width="632*"/>

    </Grid.ColumnDefinitions>

    <Rectangle Fill="Red" />

    <Rectangle Grid.Column="1" Fill="Blue"/>

    <Rectangle Grid.Column="2" Fill="Green"/>

    …其餘省略…

</Grid>

clip_image046

圖26 - 控制項的Grid相關屬性

這種屬性很特別,並不是控制項本身的屬性,而是因放在格內而附加的屬性,它的名字叫「附加屬性」。

如果想將某一個控制項以程式的方式放到某一格內,則必須使用Grid的共享方法SetXXX方法,例如要設定控制項在索引第一個Column,要使用SetColumn方法;索引第零個Row,要使用SetRow方法:

Grid.SetColumn(greenRect, 1)

Grid.SetRow(greenRect,0)

Canvas

Canvas提供類似傳統Windows Form的定位功能,使用Left、Top屬性做為控制項的定位。

Visual Studio的設計工具以左上角為原點,當控制項被放入Canvas面版時,控制項會多了Canvas.Left、Canvas.Top的附加屬性。

<Canvas HorizontalAlignment="Left" Height="356" Margin="468,58,0,0" VerticalAlignment="Top" Width="394">

    <Rectangle Fill="Red" Height="100" Stroke="Black" Width="100" Canvas.Left="70" Canvas.Top="58"/>

    <Rectangle Fill="Blue" Height="100" Stroke="Black" Width="100" Canvas.Left="124" Canvas.Top="122"/>

    <Rectangle Fill="Green" Height="100" Stroke="Black" Width="100" Canvas.Left="184" Canvas.Top="184"/>

</Canvas>

clip_image048

圖27 - 放入Canvas的控制項會多兩個屬性Left、Top

什麼是附加屬性?

附加屬性是XAML類應用程式常見的東西,名詞本身已說明一切,就是原本物件沒有的屬性,因外在元素而附加上去的屬性。以Canvas為例,原本放入的控制項並沒有Canvas.Left、Canvas.Top,因為控制項放入Canvas之中必須被定位於某個點,所以Canvas為控制項加上定位的相關屬性。

StackPanel

StackPanel提供一種子項目以水平或垂直方向堆疊排列的容器控制項。

當你將控制項置入之後StackPanel時,不需做任何定位控制項自動會以直方向排列(預設)。

clip_image050

圖28 - StackPanel內容垂直排列

<StackPanel HorizontalAlignment="Left" Height="422" Margin="68,58,0,0" VerticalAlignment="Top" Width="340">

<Rectangle Fill="Red" Stroke="Black" Height="100" Width="200" />

<Rectangle Fill="Blue" Stroke="Black" Height="100" Width="200"/>

<Rectangle Fill="Green" Stroke="Black" Height="100" Width="200"/>

</StackPanel>

可以利用StackPanel的Orientation屬性設定排列方向,預設是「Vertical」垂直排列。設為「Horizontal」會以水平排列。不管是垂直或是水平排列,只要子項目超出StackPanel的可視範圍,就會遭到裁切。

clip_image052

圖29 - 水平排列

VariableSizedWrapGrid

Grid的子項目必須藉由Column或Row的附加屬性決定控制項放置在那一個格子,而VariableSizedWrapGrid則依序自動排列子項目(或子控制項)到每一個格子。在VariableSizedWrapGrid的子項目可以使用ColumnSpan及RowSpan附加屬性決定是否跨欄或是跨行。

或許文謅謅的文字很難理解,那麼看看實際的案例(下圖及XAML)應該就可以很快瞭解了。

clip_image054

圖30 - VariableSizedWrapGrid

這個例子我將九個放著1-9數字的Button放在VariableSizedWrapGrid之中,圖30可以看出VariableSizedWrapGrid自動會將其子項目排列成九宮格。Button並沒有定義Width及Height屬性值,而是藉由VariableSizedWrapGrid的ItemWidth及ItemHeight屬性自動配置子項目的大小。

<VariableSizedWrapGrid HorizontalAlignment="Left" Height="330" Margin="752,386,0,0" VerticalAlignment="Top" Width="514" ItemHeight="100" ItemWidth="100" Background="Black">

    <Button Content="1" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

    <Button Content="2" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

    <Button Content="3" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

    <Button Content="4" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

    <Button Content="5" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

    <Button Content="6" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

    <Button Content="7" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

    <Button Content="8" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

    <Button Content="9" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

</VariableSizedWrapGrid>

圖31中修改了上面的例子,2的按鈕指定Width及Height為80;4的按鈕橫跨兩欄指定ColumnSpan為2;5、6按鈕直跨兩格指定RowSpan為2;7則佔了四個格子指定ColumnSpan為2、RowSpan為2。

clip_image055

圖31 - 利用屬性變化每個格子的顯示狀況

被修改過的2、4、5、6、7的Button之XAML如下:

<Button Content="2" FontSize="56" Width="80" Height="80" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />

<Button Content="4" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VariableSizedWrapGrid.ColumnSpan="2" />

<Button Content="5" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VariableSizedWrapGrid.RowSpan="2" />

<Button Content="6" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VariableSizedWrapGrid.RowSpan="2" />

<Button Content="7" FontSize="72" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VariableSizedWrapGrid.ColumnSpan="2" VariableSizedWrapGrid.RowSpan="2" />

0.7 結語

XAML的Panel類控制項提供多種變的相當的靈活,提供開發者易做出豐富而具彈性的操作界面。只要你了解大小(Width、Height)、邊界(Margin)、對齊(HorizontalAlignment、VerticalAlignment)等屬性相互影響的關係,利用Grid、StackPanel…等Panel類控制項輕鬆容易的完成版面配置。

Tags:

羅慧真Anita Lo | Windows Store App | .NET Magazine國際中文電子雜誌 | XAML

評論 (61) -

cours de theatre
cours de theatre United States
2017/9/30 下午 11:00:45 #

I really enjoy the blog post. Will read on...

回覆

can ho osimi
can ho osimi United States
2017/10/6 下午 10:24:34 #

Im obliged for the post. Great.

回覆

Google new cheat hacklinks
Google new cheat hacklinks United States
2017/10/9 下午 12:19:52 #

I think this is a real great post.Really looking forward to read more. Cool.

回覆

kamagra sklep
kamagra sklep United States
2017/10/9 下午 02:00:05 #

Wow, great post.Really looking forward to read more. Awesome.

回覆

can ho bien vung tau
can ho bien vung tau United States
2017/10/9 下午 04:16:18 #

Very informative blog.Thanks Again. Fantastic.

回覆

solarmovie
solarmovie United States
2017/10/10 下午 06:01:18 #

Fantastic article.Really looking forward to read more. Will read on...

回覆

Sterling Businesses Ltd
Sterling Businesses Ltd United States
2017/10/10 下午 08:11:14 #

A round of applause for your article.Thanks Again. Much obliged.

回覆

pirater un compte facebook
pirater un compte facebook United States
2017/10/10 下午 10:28:27 #

Major thanks for the article.Much thanks again.

回覆

Google new cheat hacklinks
Google new cheat hacklinks United States
2017/10/12 下午 06:53:41 #

Major thanks for the blog post. Cool.

回覆

Discover More
Discover More United States
2017/10/14 下午 01:33:34 #

I cannot thank you enough for the article.Really thank you! Great.

回覆

dragon city hack mod
dragon city hack mod United States
2017/10/15 下午 01:33:28 #

Really enjoyed this blog post. Much obliged.

回覆

my site
my site United States
2017/10/17 下午 12:51:10 #

Thanks for the blog article.Really looking forward to read more.

回覆

sletrokor review
sletrokor review United States
2017/10/17 下午 06:24:30 #

Looking forward to reading more. Great article. Cool.

回覆

DIC Phoenix
DIC Phoenix United States
2017/10/19 上午 03:47:37 #

I value the blog post.Much thanks again. Fantastic.

回覆

VigRx
VigRx United States
2017/10/19 上午 05:28:36 #

Im grateful for the article. Really Cool.

回覆

special info
special info United States
2017/10/19 下午 04:09:14 #

I really like and appreciate your blog post.Really thank you!

回覆

pure slim 1000
pure slim 1000 United States
2017/10/20 上午 01:38:24 #

Thanks for sharing, this is a fantastic post.Really looking forward to read more. Great.

回覆

Osimi Sea View
Osimi Sea View United States
2017/10/21 上午 01:09:32 #

Really appreciate you sharing this blog post.Really looking forward to read more. Want more.

回覆

prix carte grise
prix carte grise United States
2017/10/21 上午 04:56:12 #

Thanks so much for the blog post.Much thanks again.

回覆

elakekassa
elakekassa United States
2017/10/21 下午 03:20:41 #

I truly appreciate this post.Really looking forward to read more. Much obliged.

回覆

website designing company in Delhi India
website designing company in Delhi India United States
2017/10/24 上午 05:02:04 #

I am so grateful for your article.Much thanks again. Great.

回覆

DIC Phoenix
DIC Phoenix United States
2017/10/28 上午 06:52:46 #

Say, you got a nice blog post.Much thanks again. Much obliged.

回覆

EZ Battery Reconditioning Scam
EZ Battery Reconditioning Scam United States
2017/10/30 上午 05:50:56 #

I really enjoy the post.Really looking forward to read more. Cool.

回覆

plock
plock United States
2017/10/30 下午 01:35:34 #

I really like and appreciate your blog article.Much thanks again. Really Cool.

回覆

life leadership
life leadership United States
2017/11/1 上午 06:01:39 #

Hey, thanks for the blog article. Cool.

回覆

phentaslim
phentaslim United States
2017/11/3 下午 03:15:14 #

This is one awesome blog.Really thank you! Really Cool.

回覆

back pain fitness inspiration
back pain fitness inspiration United States
2017/11/15 上午 05:35:42 #

Thanks for sharing, this is a fantastic post.Much thanks again. Awesome.

回覆

criminel avocat
criminel avocat United States
2017/11/16 下午 04:13:33 #

Im thankful for the blog post.

回覆

Very informative article post.Thanks Again. Fantastic.

回覆

youtube subscribers button
youtube subscribers button United States
2017/11/22 上午 12:42:13 #

Very good blog article.Really looking forward to read more. Really Cool.

回覆

bikinis
bikinis United States
2017/11/23 下午 07:35:55 #

Thanks for the blog article.Really thank you! Really Great.

回覆

Chad Boonswang and Jeffrey Goodman
Chad Boonswang and Jeffrey Goodman United States
2017/11/26 下午 03:46:32 #

wow, awesome article post.Really thank you! Want more.

回覆

cash for cars
cash for cars United States
2017/11/29 下午 02:09:50 #

Thank you for your blog.Much thanks again. Much obliged.

回覆

can ho 4 mat tien
can ho 4 mat tien United States
2017/11/29 下午 08:40:27 #

Thanks-a-mundo for the article post. Want more.

回覆

ICO
ICO United States
2017/11/30 下午 10:36:08 #

Very neat blog post.Really looking forward to read more. Really Great.

回覆

porno
porno United States
2017/12/1 下午 02:17:52 #

Thank you ever so for you article. Want more.

回覆

small business loans
small business loans United States
2017/12/3 上午 02:33:43 #

Thanks for the blog.Much thanks again.

回覆

mobile porno
mobile porno United States
2017/12/5 上午 07:22:14 #

Great post. Will read on...

回覆

Appreciate you sharing, great article.Really looking forward to read more. Great.

回覆

I really enjoy the blog article.Really thank you! Want more.

回覆

mike lawyer
mike lawyer United States
2017/12/10 下午 04:08:55 #

Fantastic blog article.Really looking forward to read more. Keep writing.

回覆

Lore Horen
Lore Horen United States
2017/12/14 上午 07:10:05 #

I value the article.Thanks Again. Keep writing.

回覆

click site
click site United States
2017/12/14 下午 02:00:01 #

I am so grateful for your blog.Thanks Again. Great.

回覆

canon drivers
canon drivers United States
2017/12/16 下午 03:43:09 #

This is one awesome post.Really looking forward to read more.

回覆

tips lose weight
tips lose weight United States
2017/12/16 下午 09:56:26 #

Major thanks for the article post.Really looking forward to read more. Awesome.

回覆

I really like and appreciate your blog article.Really looking forward to read more. Awesome.

回覆

Discover More Here
Discover More Here United States
2017/12/17 下午 10:26:31 #

Wow, great blog.Really looking forward to read more. Great.

回覆

mlm opportunities
mlm opportunities United States
2017/12/20 下午 04:34:39 #

I think this is a real great article post. Awesome.

回覆

canon drivers
canon drivers United States
2017/12/23 下午 12:48:21 #

Thanks a lot for the blog.Really thank you! Fantastic.

回覆

&#216;&#162;&#219;Œ&#217;†&#217;‡
آینه United States
2017/12/26 下午 12:31:46 #

Very good post. Really Great.

回覆

SOCCER HIGHLIGHTS
SOCCER HIGHLIGHTS United States
2017/12/26 下午 03:07:28 #

Thanks-a-mundo for the blog post.Really looking forward to read more. Keep writing.

回覆

canon drivers
canon drivers United States
2017/12/27 下午 04:25:15 #

Great, thanks for sharing this article.Thanks Again. Really Cool.

回覆

drivers hp
drivers hp United States
2018/1/2 上午 07:09:49 #

Major thankies for the post. Much obliged.

回覆

dig this
dig this United States
2018/1/2 下午 03:08:04 #

Very good blog post. Great.

回覆

Im thankful for the article post. Cool.

回覆

hp drivers
hp drivers United States
2018/1/3 上午 06:28:23 #

Im thankful for the article.Much thanks again. Keep writing.

回覆

best Bitcoin casinos
best Bitcoin casinos United States
2018/1/4 下午 05:02:06 #

Thank you ever so for you post.Really looking forward to read more. Will read on...

回覆

hp printer driver
hp printer driver United States
2018/1/5 下午 05:58:22 #

Thanks so much for the blog article.Really thank you! Really Cool.

回覆

FBA
FBA United States
2018/1/6 上午 10:04:34 #

Thanks-a-mundo for the article post. Will read on...

回覆

web hosting
web hosting United States
2018/1/10 下午 02:11:41 #

Im thankful for the article.Thanks Again. Will read on...

回覆

新增評論




  Country flag
biuquote
  • 評論
  • 線上預覽
Loading






NET Magazine國際中文電子雜誌

NET Magazine國際中文電子版雜誌,由恆逸資訊創立於2000,自發刊日起迄今已發行超過500篇.NET相關技術文章,擁有超過40000名註冊讀者群。NET Magazine國際中文電子版雜誌希望藉於電子雜誌與NET Developer達到共同學習與技術新知分享,歡迎每一位對.NET 技術有興趣的朋友們多多支持本雜誌,讓作者群們可以有持續性的動力繼續爬文。<請加入免費訂閱>

月分類Month List