1. 程式人生 > >C# wpf介面設計基本知識

C# wpf介面設計基本知識

選單的生成

<Grid>

<Menu Height="23" Name="menu1" Width="200" HorizontalAlignment ="Left" >

<MenuItem Header =" 檔案"> //一級選單

<MenuItem Header =" 開啟"> //二級選單

<MenuItem Header =" cpp">//三級選單

</MenuItem>

</MenuItem>

<MenuItem Header =" 退出">

</MenuItem>

</MenuItem

>

<MenuItem Header =" 編輯">//一級選單

<MenuItem Header =" 複製">//二級選單

</MenuItem>

</MenuItem>

</Menu>

</Grid>

另外一層

<Grid>

<Button>

</Button>

</Grid>

顯示一般都在DockPanel裡面操作

<DockPanel>

<Menu DockPanel.Dock ="Top">

</Menu>

<TextBox DockPanel.Dock

=" Bottom">

</TextBox>

</DockPanel>

工具欄

<ToolBar DockPanel.Dock =" Top">

<Button Content =" 儲存">

</Button>

<Button Content =" 儲存新建">

//工具欄使用圖示

<Button>

<Button.Height >//屬性值賦值

23

</Button.Height>

<Button.Content>

<Image Source ="Images/01.bmp">

</Image>

</Button.Content>

</Button>

<TextBox>

</TextBox>

</ToolBar>

title 標題

resizemode  視窗大小

windowstartLocation = 視窗開始位置

windowstate 視窗預設大小

Margin 控制元件距離四周的值

bool? dialogresult //如果視窗是用showDialog開啟的,則給dialogresult會自動關閉視窗,並把dialogresult屬性的值通過showDialog的返回值返回。

萬用字元???

using sysyten.win32;

OpenFileDialog ofg;

ofg.ShowDialog()

ofg.filename 檔名

ofg.initialdirectory 設定檔案初始目錄

ofg.Filter = "文字檔案|*.txt|圖片|*.jpg;*.bmp"//同時顯示多個格式使用;

saveFiledialog sfg;

string picfilename = sfg.filename;

獲取圖片地址

image1.Source = new BitmapImage(new Uri(picfilename))//image1為另外一個顯示控制元件的名稱

focus()獲取焦點

繼承

class Animal

{

}

class Dog:Amnimal

{

}

Dog dog = new Dog(); //dog為一個物件

Animal al = dog;//al為一個變數

可以將一個子類的物件賦值給一個父類的變數。變數時一個標籤,物件是一個實際存在的東西。

Animal al= new Dog()

click事件

sender 都是object型別

Btton btn  = (Btton)sender;

陣列 int[] nums = new int[3];

遍歷陣列 foreach(int i in nums)

                {

                     }

集合類 泛型<int>

List<int> list = new List<int>();

list.Add();//新增資料

//和資料繫結有關??

list<Dog> list = new List<Dog>();

list.Add(new Dog());

控制元件的可見屬性。txt為控制元件名

txt.Visibility = System.Windows.Visibility.Collapsed;

Isenable //控制元件是否可用

Background //背景色 ctrl+j

textBox 的TextWrapping = "Wrap";換行屬性

maxlength  使用者輸入的長度不超過n個字元

passwordBox 密碼控制元件

c#中含有可null和不可null的型別

在不可null型別後面加?就可以為null               

RadioButton 單選按鈕

GroupName  組名

Datapicker 日期控制元件

DateTime? value = datapicker.selectedDate;

Datetime.Today //當前日期

DataTime.now//當前時間

Image 圖片控制元件

ProgressBar 進度條

value 當前值

Isindaterminate 不確定模式

佈局

grid佈局

<grid>

<grid.columnDefinition>

<columnDefinition></ColumnDefinition>//要幾列寫幾條

</grid.columnDefinition>

<grid.rowDefinitions>

<rowDefinition></rowDefinition>//要幾行寫幾條

</grid.rowDefinitions>

<button grid.row = "1" grid.column ="1"></button>//要修改控制元件的顯示位置,使用grid修改行和列,行數和列數是使用grid.columnSpan = "2",grid .rowSpan = "2"

//grid 屬於附加的屬性,不是行列包含的屬性

</grid>

horizontalAlignment 橫向位置

VerticalAlignment 縱向位置

stackpanel佈局

orientation 排布方式 縱向排列 橫向排列

從上往下佈局

//這裡只能新增一個屬性值,要新增多個要用StackPanel將多個屬性值打包起來

<stackPanel>

新增多條東西

例如 新增圖片。。

<Image source = "地址"></Image>

</stackpanel>

</ button.content >

動態新增控制元件

一般在load時載入

Button btn = new Button();

btn.content = "xxx";

grid.setrow(btn,i);//修改btn的行

容器名。children.add(btn);

//動態新增行

columnDefinition coldef = new columnDefinition();

容器名.columnDefinitions.Add(coldef)

//隨機數生成類

Random random =new random();

random.Next(min,max);x>=min  x<max

佈局的巢狀

<grid>

<grid.columnDefinition>

<columnDefinition></ColumnDefinition>//要幾列寫幾條

</grid.columnDefinition>

<grid.rowDefinitions>

<rowDefinition></rowDefinition>//要幾行寫幾條

</grid.rowDefinitions>

                                                                                巢狀佈局

                                                                                <stankpanel>

                                                                                </stankpanel>

                                                                                <grid>

                                                                                </grid>

</grid>