您的位置:首页 > 其它

第一章 第一课 Using WPF Control

2011-05-31 21:55 281 查看
■Explainwhatacontentcontrolis.
■DescribeanduseseveralcommonWPFcontrols.
■Useadependencyproperty.
■Createanduseanitemcontrolinyouruserinterface.
■Createamenu.
■Createatoolbar.
■Createastatusbar.
■Explainthepropertiesofacontrolthatmanagelayout.
■ExplainhowtousetheGridcontrol.
■ExplainhowtousetheUniformGridcontrol.
■ExplainhowtousetheStackPanelcontrol.
■ExplainhowtousetheWrapPanelcontrol.
■ExplainhowtousetheDockPanelcontrol.
■ExplainhowtousetheCanvascontrol.
■Configurecontrolsizing.
■Aligncontentatdesigntime.
■UsetheGridSplittercontrol.
WPFControl

Individualcontrols

Itemcontrol

layoutcontrols

一、Contentcontrols:Lable,button,checkbox,radiobutton

1)derivesfromtheContentControlandhasContentproperty

2)ThetypeoftheContentpropertyisObject,soitcanacceptanyobjectascontent.How
contentisrendered,however,dependsonthetypeoftheobjectintheContentproperty

ForitemsthatdonotderivefromUIElement,theToStringmethodiscalled,andtheresulting
stringisrenderedasthecontrolcontent.ItemsthatderivefromUIElement,however,are
displayedascontainedwithinthecontentcontrol

3)contentcontrolscancontainonlyasinglenestedelementthereisnoinherentlimitonthenumberofnestedelementsthatthecontentcancontain

ViewCo

//Summary:
//RepresentsthebaseclassforallSystem.Windows.Controls.Buttoncontrols.
[DefaultEvent("Click")]
[Localizability(LocalizationCategory.Button)]
publicabstractclassButtonBase:ContentControl,ICommandSource//Summary://Representsacontrolwithasinglepieceofcontentofanytype.[ContentProperty("Content")][Localizability(LocalizationCategory.None,Readability=Readability.Unreadable)][DefaultProperty("Content")]publicclassContentControl:Control,IAddChild{//Summary://IdentifiestheSystem.Windows.Controls.ContentControl.Contentdependency//property.////Returns://TheidentifierfortheSystem.Windows.Controls.ContentControl.Contentdependency//property.[CommonDependencyProperty]publicstaticreadonlyDependencyPropertyContentProperty;////Summary://IdentifiestheSystem.Windows.Controls.ContentControl.ContentStringFormat//dependencyproperty.////Returns://TheidentifierfortheSystem.Windows.Controls.ContentControl.ContentStringFormat//dependencyproperty.[CommonDependencyProperty]publicstaticreadonlyDependencyPropertyContentStringFormatProperty;////Summary://IdentifiestheSystem.Windows.Controls.ContentControl.ContentTemplatedependency//property.////Returns://TheidentifierfortheSystem.Windows.Controls.ContentControl.ContentTemplatedependency//property.[CommonDependencyProperty]publicstaticreadonlyDependencyPropertyContentTemplateProperty;////Summary://IdentifiestheSystem.Windows.Controls.ContentControl.ContentTemplateSelectordependency//property.////Returns://TheidentifierfortheSystem.Windows.Controls.ContentControl.ContentTemplateSelectordependency//property.[CommonDependencyProperty]publicstaticreadonlyDependencyPropertyContentTemplateSelectorProperty;////Summary://IdentifiestheSystem.Windows.Controls.ContentControl.HasContentdependency//property.////Returns://TheidentifierfortheSystem.Windows.Controls.ContentControl.HasContentdependency//property.[CommonDependencyProperty]publicstaticreadonlyDependencyPropertyHasContentProperty;//Summary://InitializesanewinstanceoftheSystem.Windows.Controls.ContentControl//class.[TargetedPatchingOptOut("PerformancecriticaltoinlinethistypeofmethodacrossNGenimageboundaries")]publicContentControl();//Summary://GetsorsetsthecontentofaSystem.Windows.Controls.ContentControl.////Returns://Anobjectthatcontainsthecontrol'scontent.Thedefaultvalueisnull.[Bindable(true)][CustomCategory("Content")]publicobjectContent{get;set;}////Summary://GetsorsetsacompositestringthatspecifieshowtoformattheSystem.Windows.Controls.ContentControl.Content//propertyifitisdisplayedasastring.////Returns://AcompositestringthatspecifieshowtoformattheSystem.Windows.Controls.ContentControl.Content//propertyifitisdisplayedasastring.[Bindable(true)][CustomCategory("Content")]publicstringContentStringFormat{get;set;}////Summary://GetsorsetsthedatatemplateusedtodisplaythecontentoftheSystem.Windows.Controls.ContentControl.////Returns://Adatatemplate.Thedefaultvalueisnull.[Bindable(true)][CustomCategory("Content")]publicDataTemplateContentTemplate{get;set;}////Summary://Getsorsetsatemplateselectorthatenablesanapplicationwritertoprovide//customtemplate-selectionlogic.////Returns://Adatatemplateselector.Thedefaultvalueisnull.[CustomCategory("Content")][Bindable(true)][DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]publicDataTemplateSelectorContentTemplateSelector{get;set;}////Summary://GetsavaluethatindicateswhethertheSystem.Windows.Controls.ContentControl//containscontent.////Returns://trueiftheSystem.Windows.Controls.ContentControlhascontent;otherwise//false.Thedefaultvalueisfalse.[ReadOnly(true)][Browsable(false)]publicboolHasContent{get;}////Summary://Getsanenumeratortothecontentcontrol'slogicalchildelements.////Returns://Anenumerator.Thedefaultvalueisnull.protectedinternaloverrideIEnumeratorLogicalChildren{get;}


二、LabelControlandMnemonicKeys

Labelscontainbuilt-insupportformnemonickeys,whichmovethefocustoadesignated
controlwhentheAltkeyispressedwiththemnemonickey.

Themnemonickeyisspecifiedbyprecedingtheddesiredkeywiththeunderscore(_)symbolandappearsunderlinedatruntimewhentheAlt
keyispressed.wecandesignateatargetcontrolbysettingtheTargetpropertyoftheLabelcontrol

Samplecode:

<LabelName="Label1"Width="100"Target="{BindingElementName=testBox1}">PressAlt+_A</Label>
<TextBoxName="testBox1"Height="26"Width="100"></TextBox>

WhenuserpressAlt+A,Theinputfocuswillmovetotextbox.

三、ButtonControl

IsDefaultpropertyandtheIsCancelproperty

1)defaultproperty
WhenIsDefaultissettoTrue,thebutton’sClickeventisraised
oupressEnter

2)IsCancelproperty

WhenIsCancelissettoTrue,thebutton’sClickeventisraised
whenEscispressed.
3)ACCESSKEYS:

thebuttonwillbeclickedwhentheuserpressesAltandthatkeytogether

<Button>_ClickMe!</Button>

RADIOBUTTONCONTROL
YoucanhavemultiplegroupsinasinglecontainerbysettingtheGroupNameproperty

<RadioButtonGroupName="Group1"Name="RadioButton1"Height="22"VerticalAlignment="Top"Margin="15,10,0,0"HorizontalAlignment="Left"Width="76">Button1</RadioButton>
<RadioButtonGroupName="Group1"Name="RadioButton2"Margin="15,34,0,0"Height="22"VerticalAlignment="Top"HorizontalAlignment="Left"Width="76">Button2</RadioButton>
<RadioButtonGroupName="Group2"Name="RadioButton3"Margin="15,58,0,0"Height="21"HorizontalAlignment="Left"VerticalAlignment="Top"Width="76">Button3</RadioButton>
<RadioButtonGroupName="Group2"Name="RadioButton4"Margin="15,85,0,0"Height="22"HorizontalAlignment="Left"VerticalAlignment="Top"Width="76">Button4</RadioButton>

==

<StackPanelHeight="29"VerticalAlignment="Top">
<RadioButtonName="RadioButton1">Button1</RadioButton>
<RadioButtonName="RadioButton2">Button2</RadioButton>
</StackPanel>
<StackPanelHeight="34"Margin="0,34,0,0"VerticalAlignment="Top">
<RadioButtonName="RadioButton3">Button3</RadioButton>
<RadioButtonName="RadioButton4">Button4</RadioButton>
</StackPanel>

CHECKBOXCONTROL
TheIsCheckedpropertyisaBoolean?(bool?inC#)datatypesimilartotheBooleantypebutallowsanindeterminatestateaswell.Acheck
boxwillbeintheindeterminatestatewhenawindowfirstopens.

Othercontrol:
TextBlock

Image:

Scretch:None,Fill,Uniform,UniformFill

None:图片原始尺寸

Fill:适应ImageControl大小

Uniform:等比缩放适应ImageControl,ImageControl不一定被填满,但图片不会被剪切

UniformFill:等比缩放,并填充ImageControl。图片可能会被剪切

Progressbar

Textbox

Sliderbar

SettingtheTabOrderforControls
Bydefault,controlsintheuserinterfacewillreceivethefocus
fromTabkeypressesintheorderinwhichtheyaredefinedintheXAML

TabIndex

KeyboardNavigation.IsTabStop="False"tokeepacontrolfromreceivingfocuswhentheuserpressestheTabkey

ItemControls
ListBox

<ListBoxName="listbox1"VerticalAlignment="Top">
<CheckBoxName="Chk1">Option1</CheckBox>
<CheckBoxName="Chk2">Option2</CheckBox>
<CheckBoxName="Chk3">Option3</CheckBox>
<CheckBoxName="Chk4">Option4</CheckBox>
</ListBox>

<TreeView>
<TreeViewItemHeader="PizzaToppings">
<CheckBoxContent="Pepperoni"/>
<CheckBoxContent="Sausage"/>
<CheckBoxContent="Mushroom"/>
<CheckBoxContent="Tomato"/>
Lesson1:UsingWPFControlsCHAPTER115
</TreeViewItem>
<TreeViewItemHeader="SandwichItems">
<CheckBoxContent="Lettuce"/>
<CheckBoxContent="Tomato"/>
<CheckBoxContent="Mustard"/>
<CheckBoxContent="HotPeppers"/>
</TreeViewItem>
</TreeView>

<MenuHeight="22"Name="menu1"VerticalAlignment="Top"
HorizontalAlignment="Left"Width="278">
<MenuItemHeader="_File">
<MenuItemHeader="Open"/>
<MenuItemHeader="Close"/>
<MenuItemHeader="Save"Command="ApplicationCommands.Save"/>
</MenuItem>
</Menu>

<TextBox>
<TextBox.ContextMenu>
<ContextMenu>
<MenuItemHeader="Cut"Command="ApplicationCommands.Cut"/>
<MenuItemHeader="Copy"Command="ApplicationCommands.Copy"/>
<MenuItemHeader="Paste"Command="ApplicationCommands.Paste"/>
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>

<ToolBarTrayName="toolBarTray1"Height="65"VerticalAlignment="Top"> <ToolBarName="toolBar1"Height="26"VerticalAlignment="Top"> <Button>Back</Button> <Button>Forward</Button> <Button>Stop</Button> </ToolBar> <ToolBar> <TextBoxWidth="100"/> <Button>Go</Button> </ToolBar> </ToolBarTray>

LayoutControls
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: