随笔分类 - WPF
摘要:呼叫线程无法存取此对象在WPF、WinForm这些应用程序中,必需是UI线程才能控制窗体。如果像是下列的范例程序一样,使用了非UI线程来控制窗体,那就会看到内容为「呼叫线程无法存取此对象,因为此对象属于另外一个线程」的InvalidOperationException例外错误。<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schema
阅读全文
摘要:前言 在開發應用程式時,一個很重要的工作項目就是設計使用者介面的排版布局。WPF中所提供的Grid控制項,讓開發人員擁有將版面分割為欄列交錯表格區域的能力。而開發人員在使用Grid控制項分割版面之後,還可以在版面中加入GridSplitter控制項,用以在執行期間提供使用者動態調整表格區域大小的功能。 本篇文章介紹使用Grid控制項與GridSplitter控制項,來設計幾個常見的基本排版布局,為自己留個紀錄也希望能幫助到有需要的開發人員。 一上二下佈局 上圖是一個一上二下的佈局樣式,MSDN網站採用這個佈局樣式來提供各種資訊內容。 <!--Definition--><Gri
阅读全文
摘要:在WPF内可以使用DataTemplate,来辅助完成对对象集合做DataBinding的工作。并且透过DataTemplate的DataType属性,来让对象集合中不同的对象,经过DataBinding之后能有「不同的外观」。简单的范例如下:不同的车辆类型,会依照车辆类型,呈现不同的详细数据。namespace BindingInterfaceSample{ public class Car { public string Name { get; set; } } public class Truck : Car { public i...
阅读全文
摘要:动机 :Plugin是在软件系统内增加功能的功能。 如果在软件系统加入Plugin功能,能提高软件系统的重用性。加入Plugin功能的软件系统在开发完成之后。 如果需要额外加入功能,不用变更已完成的软件系统就能加入新功能。 并且因为不用变更已完成的软件系统,也就避免了修改软件系统会产生的风险。在MVVM的架构下View跟ViewModel各自独立,做Plugin功能也就变得比较复杂。 必须要View跟ViewModel各自都有Plugin功能然后再互相组合,才能完成MVVM Plugin的功能。本篇文章记录在WPF上,如何实做MVVM Plugin。 为自己做个纪录,也希望能帮助到有需要的开发
阅读全文