Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
P a g e | 0
ตวอยาง
พฒนาแอพพลเคชนดวย WPF 4.5
ใน VB 2012 และ VC# 2012 ส าหรบมอใหม
ตวอยาง
พฒนาแอพพลเคชนดวย WPF 4.5 ใน VB 2012 และ VC# 2012 ส าหรบมอใหม
ผแตง : นายศภชย สมพานช เนอหา : 20 บท (582 หนา) ฟอนต : www.f0nt.com/
วนทพมพ : กนยายน 2555 ครงทพมพ : 2nd Edition
ลขสทธ : สงวนลขสทธตาม พ.ร.บ. ลขสทธ พ.ศ. 2537 หามลอกเลยนแบบ, ดดแปลง, ทาซา, เผยแพร ไมวาสวนหนงสวนใดของหนงสอเลมน หรอดวยวธการใดๆ กตาม นอกจากจะไดรบอนญาตเปนลายลกษณอกษรจากผเขยนเทานน
คณผอานสามารถสอบถามปญหา-ตชมเนอหาของหนงสอเลมนไดท https://www.facebook.com/thaivb.net
Visual Studio เปนเครองหมายทางการคาของบรษท Microsoft Coporation จ ากด โปรแกรมตางๆ ตามทอางในหนงสอเลมน เปนเครองหมายการคาของบรษทนนๆ ตว
อยาง
ค าน า การพฒนาแอพพลเคชนดวย WPF 4.5 ใน VB 2012 และ VC# 2012 เลมน เปนการนาเสนอเนอหาสาหรบผทตองการพฒนา Desktop Application ตงแตระดบพนฐาน จนถงเขยนแอพพลเคชนไดจรง
จดเดนของ WPF Application กคอ คณสามารถสรางหนาจอ ทผานการแกไขสวนแสดงผล เพอแสดงขอมลใหตรงกบความตองการของคณมากยงขน โดยการยกตวอยางประกอบทกหวขอ เพอใหเหนผลการทางานชดเจน โดยมคาอธบายทกหวขอ ละเอยด และงายตอการทาความเขาใจสาหรบมอใหมทกคน
สดทายน ผเขยนขอขอบคณสวนชวยเหลอใน MSDN ของไมโครซอฟททชวยแกไขปญหาในระหวางการแตงหนงสอเลมน หากคณผอานทานใด ตองการสอบถามปญหาเนอหาของหนงสอเลมน สามารถโพสถามปญหาไดทแฟนเพจของผเขยนท https://www.facebook.com/thaivb.net โดยทผเขยนขอยกเลกการถาม-ตอบปญหาผานระบบ e-mail ของผเขยนทงหมด
ศภชย สมพานช กนยายน 2555
ตวอยาง
ตวอยางทนาสนใจในหนงสอเลมน การปรบแตงสวนแสดงผลในคอนโทรล ListView
การปรบแตงสวนแสดงผลในคอนโทรล ListBox
ตวอยาง
การปรบแตงสวนแสดงผลในคอนโทรล ComboBox
การสรางหนาจอจดการขอมลในฐานขอมล
ตวอยาง
สารบญ บทท 1 กาวแรกในโลกของ WPF Application 1
บทนา 1
แนวทางของโปรแกรมเมอรในยค .NET Framework 4.5 2
รปแบบการนาเสนอตวอยางในหนงสอเลมน 14
รปแบบการลงโคด (VB 2012 & VC# 2012) และสครปต XAML ในหนงสอเลมน 15
การจดระเบยบโคดหรอสครปตใน VS 2012 16
สรปทายบท 17
บทท 2 คอนโทรล TextBlock, Button และตวบรรจ StackPanel 18
บทนา 18
โครงสรางขนตนของ WPF Application 19
พนฐานการใชงานคอนโทรล TextBlock 19
การตดคาแบบ CharacterEllipsis 21
การตดคาแบบ None 21
การตดคาแบบ WordEllipsis 22
WPF Application แรกของคณ 24
การสรางเหตการณในสครปต XAML 32
การอางองคอนโทรลหรออลเมนต 39
การเลอกโฟกสคอนโทรลทสนใจอย 43
การคนหาคณสมบตตางๆ 44
การยกเลกแกไขคณสมบต 45
การกาหนดหนาตาง Window เรมตน 47
การกาหนดหนาตางเรมตนใน Project Properties (เฉพาะ VB 2012 เทานน) 47
การกาหนดผานทางแอตทรบวต StartupUri ของอลเมนต <Application>…</Application> 48 การกาหนดโฟกสคอนโทรลใน XAML 49
การจดตาแหนงดวยคณสมบต HorizontalAlignment และคณสมบต VerticalAlignment 51 การจดระยะหางดวยคณสมบต Margin 54
ตวอยาง
ทาความรจกกบคณสมบต Padding 58
ทาความรจกกบคณสมบต Content 60
ทาความรจกกบคณสมบต ContentAlignment 62
สรปทายบท 63
บทท 3 การใชงานคอนโทรลมาตรฐานของ WPF ทนาสนใจ 64
บทนา 64
พนฐานการใชงานคอนโทรล Label 65
การแสดงขอความหลายบรรทดในคอนโทรล TextBox 66
พนฐานการใชงานคอนโทรล CheckBox 67
การสรางตวเลอกสถานะ Null 71
การสรางตวเลอกดวยคอนโทรล RadioButton รวมกบคอนโทรล GroupBox 72
การตรวจสอบ Content ของคอนโทรล RadioButton กรณทมการปรบแตง 73
การจดกลมคอนโทรล RadioButton โดยการตงชอกลม 78
พนฐานการใชงานคอนโทรล ComboBox 79
การใชงานคอนโทรล TextBlock ในคอนโทรล Button โดยการเขยนโคด 80
การปรบแตงสไตลใหกบขอความ 82
พนฐานการแสดงรปภาพในคอนโทรล Button 84
การแสดงรปภาพแบบพนหลงโปรงใสบนปม Button 85
การแสดงขอความและรปภาพบนคอนโทรล Button 87
พนฐานการสราง ToolTip 89
การสรางคายนยนกอนปดแอพพลเคชน 91
พนฐานการใชงานคอนโทรล ListBox 93
พนฐานการใชงานคอนโทรล TreeView 94
สรปทายบท 95
บทท 4 การจดสวนแสดงผลดวยคอนโทรลประเภท Layout 96
บทนา 96
พนฐานการใชงานคอนโทรล Grid 97
ตวอยาง
การรวมคอลมนหรอรวมแถวในคอนโทรล Grid 102
การใชงานคอนโทรล Grid ในโหมดออกแบบ 105
การปรบแตง Layout ของคอนโทรล Grid 107
การใชงานคอนโทรล Border 111
การจดเรยงคอนโทรลตามแนวนอนหรอแนวตงดวยคอนโทรล StackPanel 113
การเปลยนตวบรรจดวยคาสงใน VS 2012 116
การปรบแตง ToolTip ดวยคอนโทรล StackPanel 118
การปรบแตงสวนหวของคอนโทรล GroupBox 119
การปรบขนาดสวนแสดงผลดวยคอนโทรล GridSplitter 122
การสรางแถบเลอนแบบดวยคณสมบต SharedSizeScope 125
การสรางสวนแสดงผลแบบยดตดดวยคอนโทรล DockPanel 127
การจดตาแหนงในคอนโทรล DockPanel 129
การแบงพนทสวนแสดงผลดวยคอนโทรล Border และคอนโทรล DockPanel 132
การแสดงขอมลแบบแทบดวยคอนโทรล TabControl 133
การสรางสวนแสดงผลแบบเลอนไป-มาดวยคอนโทรล ScrollViewer 135
การสรางสวนแสดงผลแบบซอน-แสดงดวยคอนโทรล Expander 136
การใชงานคอนโทรล Expander รวมกบขอความ 138
การสรางสวนแสดงผลแบบ Explorer 141
การสรางสวนแสดงผลแบบพนทอสระดวยคอนโทรล Canvas 145
การกาหนดเลเยอร (Layer) ตามแนวแกน z ในคอนโทรล Canvas 148
การสรางพนทใหเพยงพอตอสวนแสดงผลดวยคอนโทรล WarpPanel 150
สรปทายบท 152
บทท 5 เมนและทลบาร 153
บทนา 153
การสรางเมน 154
การใช ToolTip ของเมน 156
การสรางเมนแบบ Hyperlink 158
ตวอยาง
การสรางเมนแบบ Context 159
พนฐานการสรางทลบาร 161
การใชงาน ToolBarTray 162
การสรางเมนพนฐานแบบอตโนมตดวย ApplicationCommands 164
การสรางเมนมาตรฐานอตโนมตดวยคณสมบต Command 166
สรปทายบท 167
บทท 6 หนาตาง (Window) 168
บทนา 168
การเคลอนยายหนาตาง Window โดยการดกจบเหตการณ MouseLeftButtonDown() 169
การใชงานหนาตาง Window แบบไมมเสนขอบ 170
การทาหนาตางกงโปรงใส 172
การสรางหนาตางทไมใชสเหลยม 174
การแสดงหนาตางแบบเตมจอ FullScreen 178
วธการแสดงหนาตาง Window 180
การแสดงรายชอหนาตาง Window ทกาลงเปด 185
สรปทายบท 187
บทท 7 WPF กบระบบกราฟฟกแบบ 2 มต 188
บทนา 188
การวาดเสนดวยคอนโทรล Line 189
รปแบบของอลเมนต <Line>…</Line> 190
การวาดวงกลมหรอวงรดวยคอนโทรล Ellipse 191
การวาดรปสเหลยมดวยคอนโทรล Rectangle 192
การหมนรปภาพ 193
การแสดงรปภาพบางสวนดวยคณสมบต ViewBox 194
การลงสแบบโปรงใส และกงโปรงใส 198
การลงสโปรงใสบางสวน 201
การลงสพนหลงดวยคา Null 203
ตวอยาง
การสรางถาดผสมส 204
สรปทายบท 209
บทท 8 การท า Transform กบคอนโทรล 210
บทนา 210
การทา Transforms 211
การทา RenderTransform 211
การทา LayoutTransform 215
การทา ScaleTransform 217
การทา RotateTransform 219
การทา TranslateTransform 220
การทา SkewTransform 221
การทา TransformGroup 223
สรปทายบท 224
บทท 9 การปรบแตงคอนโทรลดวย Style 225
บทนา 225
การใชงาน Style 226
การปรบแตง Style 228
การระบประเภทคอนโทรลใหกบ Style 233
การกาหนดขอบเขตการใชงานของ Resources 236
การใชงาน Resources ทมขอบเขตระดบ Application 239
การเรยกใชแบบภายใน 240
การเรยกใชแบบภายนอก 241
การใชงาน Resources ของอลเมนต Style 243
การเลอกใช Style โดยการเขยนโคด 244
สรปทายบท 248
บทท 10 ท าความรจกกบ Triggers 249
บทนา 249
ตวอยาง
การใชงาน Triggers 250
การใชงาน Triggers แบบมเงอนไข OR และ AND 252
การผกตดขอมลดวย DataTrigger แบบมเงอนไข AND 255
การผกตดขอมลดวย MultiDataTrigger แบบเงอนไข OR 259
สรปทายบท 261
บทท 11 แปรงทาสของ WPF 262
บทนา 262
การแสดงรปภาพดวยแปรงทาสแบบ ImageBrush 263
การลงสแบบ Define Pattern 263
การลงสแบบธรรมดาดวยแปรงแบบ SolidColorBrush และการอางองระบบสแบบ RGB 267
การลงสแบบไลโทนสดวยแปรงแบบ LinearGradientBrush 269
การทาขอความแบบไลโทนส 272
การลงสรงกนนา 273
การลงสแบบหลอดไฟนออน 275
การทาแสงเงาดวย RadialGradientBrush 276
การสรางขอความทถกบดบงบางสวน 278
การลงสแบบไลโทนสแบบวงแหวนดวย RadialGradientBrush 279
การสรางเงาสะทอนในนาดวยแปรงชนด VisualBrush 280
การทาภาพเสมอนดวยแปรง VisualBrush กบกลมคอนโทรล WPF 285
การบงรปภาพบางสวนดวย OpacityMask 287
สรปทายบท 288
บทท 12 การสรางแอนเมชนดวย Storyboard 289
บทนา 289
พนฐานการทา Animation 290
การทาแอนเมชนดวย Storyboard 295
การทาแอนเมชนกบอลเมนตทอยใน StackPanel 298
การใชงาน Storyboard ดวยการระบชอ 301
ตวอยาง
การสง Storyboard จากอลเมนตตางประเภทกน 302
การสรางแผงควบคม Storyboard 303
การจด Layout ใหกบปม Button แบบท 1 307
การจด Layout ใหกบปม Button แบบท 2 313
การทาขอความแบบ Fading 316
การทาขอความแบบเดงไป-มา 317
การทา LayoutTransform แบบมแอนเมชน 320
การทา RenderTransform แบบมแอนเมชน 322
พนฐานการใชงาน Storyboard กบระบบส 326
การทาขอความแบบมแสงเงา 327
การสรางตวนบถอยหลงแบบท 1 330
การสรางตวนบถอยหลงแบบท 2 334
การทาขอความ Loading… 336
สรปทายบท 337
บทท 13 การผกตดขอมล (Data Binding) ใน WPF Application 338
บทนา 338
การผกตดขอมลระหวางคอนโทรลของ WPF 339
รปแบบการผกตดขอมล 342
ขอดของการผกตดระหวางคอนโทรล 347
การทา LayoutTransform แบบ Real Time 348
การทา RenderTransform แบบ Real Time 351
การผกตดขอมลกบแหลงขอมล Data Collection 355
การทา Multiple Binding ใน XAML 356
อาศยอลเมนต <ObjectDataProvider>…</ObjectDataProvider> 356
การผกตดขอมลโดยการเขยนโคด 363
การผกตดขอมลดวยคณสมบต DataContext 369
การผกตดขอมลกบคลาสโดยการแกไข Template 373
ตวอยาง
สรปทายบท 386
บทท 14 การเตรยมสภาพแวดลอมกอนใชงานฐานขอมล SQL Server 2012 Express Edition ใน WPF Application 387
บทนา 387
วธการตดตอกบระบบฐานขอมล SQL Server 2012 Express Edition 388
การตดตงฐานขอมล SQL Server 2012 Express Edition 389
การแกไขขอผดพลาดกรณตดตง SQL Server 2012 Express Edition บน Windows 8 390
พนฐานการใชงาน SQL Server 2012 Express Edition 393
การสรางฐานขอมลใน SQL Server 2012 Express Edition 394
การสรางความสมพนธระหวางตาราง 399
การยกเลกการปองกนการแกไขโครงสรางของฐานขอมล 405
การสารองฐานขอมลดวยการทา Back Up 406
การ Restore ฐานขอมล 409
สรปทายบท 412
บทท 15 พนฐานการใชงาน Entity Framework 5.0 ใน WPF Application 413
บทนา 413
การตดตงฐานขอมลตวอยาง Northwind 414
ทาความรจกกบฐานขอมล Northwind 417
ทาความรจกกบฐานขอมล miniPO 422
พนฐานการแสดงขอมลจากฐานขอมลดวยคอนโทรล DataGrid 424
ทาความรจกกบ Entity ทไดจากฐานขอมล 435
การตกแตง Entity 437
การอพเดทไดอะแกรมกรณฐานขอมลมการเปลยนแปลง 439
สรปทายบท 441
บทท 16 พนฐานการควรขอมลดวย Entity Framework 442
บทนา 442
การแสดงขอมลบางคอลมน 443
ตวอยาง
การแสดงขอมลในคอนโทรล ListView 447
พนฐานการเรยกดขอมลแบบมเงอนไข 452
การระบหลายเงอนไขในการควรขอมล 458
การแสดงขอมลดวยคอนโทรล ComboBox 460
การเลอกดขอมลโดยอาศย Lambda Expression 465
พนฐานการจดกลมขอมลจากฐานขอมล 468
สรปทายบท 473
บทท 17 การท างานกบขอมลตงแต 2 ตารางขนไป 474
บทนา 474
พนฐานการทางานกบขอมลทมความสมพนธกน 475
การเพม Entity จากฐานขอมลเขาไปในไดอะแกรม 481
การแสดงขอมลทมความสมพนธกนดวยคอนโทรล ComboBox และคอนโทรล DataGrid 483
การแสดงขอมลทมความสมพนธกนดวยคอนโทรล DataGrid 490
สรปทายบท 499
บทท 18 การแสดงขอมลจากฐานขอมลโดยการแกไข Template 500
บทนา 500
การแกไข Template ในขณะออกแบบ 501
พนฐานการแสดงขอมลในคอนโทรล ListView แบบแกไข Template 511
การแสดงขอมลในคอนโทรล ListBox โดยการแกไข Template 520
การปรบแตงรายการในคอนโทรล ComboBox 523
การแสดงขอมลทมความสมพนธกนดวยคอนโทรล TreeView 527
สรปทายบท 535
บทท 19 การเพม, แกไข และลบขอมลในฐานขอมล 536
บทนา 536
การเพม, แกไข และลบขอมลในฐานขอมล 537
สรปทายบท 561
Workshop 1 : การสรางหนาตาง Login 562
ตวอยาง
การสรางหนาตาง Login 562
Workshop 2 : การเพมและแกไขขอมลสนคา 565
การเพมและแกไขขอมลสนคา 565
สรปทายเลม 582
ตวอยาง
ตวอยาง
บทท 1 กาวแรกในโลกของ WPF Application
บทน า หนงสอ “พฒนาแอพพลเคชนดวย WPF 4.5 ใน VB 2012 และ VC# 2012 สาหรบมอใหม” เลมน เปนการนาเสนอเนอหาการพฒนา Desktop Application ดวย WPF 4.5 ซงมากบการตดตง Visual Studio 2012 เรยกสนๆ วา VS 2012 ความสาคญอยางหนงของการพฒนาแอพพลเคชนในยคปจจบน กคอ การนาเสนอขอมลตางๆ ในสวนแสดงผลตองชดเจน สอขอมลเปนไปตามทควรจะเปน และสรางความสนใจใหแกผใชงานแอพพลเคชนของคณ ซงถอเปนความสามารถทสาคญทสดของ WPF Application
WPF Application ยนยอมใหคณสามารถแกไขสวนแสดงผลของคอนโทรลตางๆ เพอใหสามารถแสดงขอมลทมความหลายหลายในยคปจจบน ใหตรงกบความตองการมากยงขน สงผลใหแอพพลเคชนของคณ มสวนแสดงผลทดพอทจะนาเสนอขอมลเพอใหเกดประสทธภาพสงสด
ตวอยาง
แนวทางของโปรแกรมเมอรในยค .NET Framework 4.5 การอพเดตของไมโครซอฟทในยคของ .NET 4.5 และการมาของ Windows 8 ถอเปนการปรบปรงครงใหญอกครงหนง ใหคณดรปท 1-1 ประกอบคาอธบาย
รปท 1-1 แสดงประเภทแอพพลเคชนของ .NET 4.5 ในขนตน การพฒนาแอพพลเคชนกอนหนาน (เวอรชน 4.0 และเวอรชนเกากวา) โปรแกรมเมอรสาย .NET มพนทใหคณทางาน 2 สวนใหญๆ คอ 1. Desktop Application
2. Web Application การพฒนาแอพพลเคชนทง 2 สาย เปนพนทเดมทเราคนเคยกนเปนอยางด ขนอย
กบความสนใจของคณวา จะเลอกเดนไปในเสนทางใด กแลวแตความชอบ ความถนดของแตละบคคล
แตในยคปจจบน .NET Framework ถกพฒนามาถงเวอรชน 4.5 และเขาสยคของ Windows 8 โปรแกรมเมอรสาย .NET มพนใหมขนมาอก 1 แหง ทางานบนอปกรณ Tablet
เปนททราบกนดวา ในยคปจจบน ผคนโดยทวไปตางคนเคยกบการใช แทบเลต (Tablet) และสมารทโฟน (Smart Phone) หลายคนเปลยนพฤตกรรมจากทเคยทาบน
ตวอยาง
เครองคอมพวเตอร มาทาบนอปกรณเหลานแทน เชน การเลนอนเตอรเนต, การเลนเกมส, การใชแอพพลชนตางๆ ฯลฯ เปนตน
ในโลกของ .NET เราเรยกแอพพลเคชนตางๆ ทรนบนอปกรณเหลานวา Windows 8 Apps และเรยกอปกรณเหลานโดยรวมวา Smart Devices กลาวไดอกนยหนงวา ถาคณตองการพฒนาแอพพลเคชนบน Smart Devices เหลานดวย .NET คณตองพฒนาแอพพลเคชนแบบ Windows 8 Apps นนเอง
รปท 1-2 แสดงโปรเจกตแบบ Windows 8 Apps ใน Visual Studio 2012 บน Windows 8
ไมโครซอฟทออกแบบให Windows 8 ทางานไดทง PC (คอมพวเตอร) และ Tablet ซงเปนพนทแหงใหมของโปรแกรมเมอรสาย .NET ทางานรวมกบ .NET Framework 4.5
ความสาคญอกประการหนง กคอ คณตองทราบใหไดกอนวา คณกาลงอยสวนไหนในโลกของ .NET 4.5 บน Windows 8 กลาวคอ
ตวอยาง