所有控件都继承自System.Windows.Controls.Control类,这个类添加一些基本结构:
(HorizontalContentAlignment,VerticalContentAlignment,Padding)
(TabIndex,IsTabStop)
(Background,Foreground,BorderBrush,BorderThickness)
(FontFamily,FontSize,FontStretch,FontStyle,FontWeight)
内容控件可以包含并显示一个内容。与布局容器不同,内容控件只能包含一个子元素,而布局容器只要愿意可以包含任意多个元素。我们仍可以在内容控件中放置大量内容--就是使用布局容器来封装所有内容(常见的StackPanel,Grid)。常见的场景就是Window作为内容控件,包含了大量内容,这些内容都包裹在Grid中。
Panel提供Children集合来保存嵌套的元素不同,Control类添加了Content属性(只接受单一对象),Content属性支持任何类型的对象(Window除外)
最简单的内容控件。Lable能够为链接的控件设置焦点的快捷键。通过Target属性设置指向需要设置焦点的控件。
按下Alt键之后,Lable标签的内容 B显示了下划线,然后再同时按下Alt+B,焦点就会设置到名称为txtBox1的控件上。
WPF提供了3种类型的按钮控件:Button,CheckBox,RadioButton,都继承自ButtonBase
ButtonBase定义了Click事件并添加了对命令的支持,允许更高层应用程序任务触发按钮。ButtonBase添加了ClickMode属性,该属性决定何时引发Click事件以响应鼠标动作。默认值是ClickMode.Release,这意味着当单击和释放鼠标键时引发Click事件。
Button就是我们一直使用的按压按钮,它有两个可写属性:IsCancel、IsDefault。
一般在一个窗口中,只会设置一个取消按钮和默认按钮,否则逻辑就会变的混乱。
这两个控件都不是抽象类,可以直接在用户界面中使用。
HasDropShadow:工具提示是否有扩散的黑色阴影,使其和背后的窗口区分开
Placement:工具提示放置的位置。默认是Mouse(表示工具提示方框的左上角与当前鼠标的位置相关,根据HorizontalOffset和VerticalOffset的值,工具提示的实际位置会偏离起始点),其他枚举值使用绝对屏幕坐标来设置工具提示的位置,或者使用相对元素(PlacementTarget属性指定的元素)设置工具提示的位置
PlacementTarget:工具提示相对元素位置的元素,Placement不能是Mouse,必须是Left,Right,Top,Buttom、Center(指定相对元素哪个边缘对齐)
PlacementRectangle:用于偏移的位置,和HorizontalOffset和VerticalOffset相同。Placement必须是Mouse
CustomPopupPlacementCallback:允许使用动态定位提示工具。Placement设置为Custom,由ToolTip调用来设置位置,回调方法三个参数是popupSize(ToolTip的大小),targetSize(PlacementTarget的大小),offset(根据HorizontalOffset和VerticalOffset创建的点),返回CustomPopupPlacement[]来设置ToolTip的位置
this.toolTip.CustomPopupPlacementCallback =
new CustomPopupPlacementCallback((Size popupSize, Size targetSize, Point offset) =>
{
CustomPopupPlacement placement1 = new CustomPopupPlacement(new Point(-50, 100), PopupPrimaryAxis.Vertical);
CustomPopupPlacement placement2 = new CustomPopupPlacement(new Point(10, 20), PopupPrimaryAxis.Horizontal);
CustomPopupPlacement[] ttplaces = new CustomPopupPlacement[] { placement1, placement2 };
return ttplaces;
});
StaysOpen:无效
IsEnabled:是否禁用,IsOpen:通过代码显示或者隐藏工具提示
ToolTip的一些属性不能自己设置,需要使用附加属性ToolTipService类来设置。可以在控件标签中直接设置,不是添加嵌套的ToolTip元素。
区别:
手机扫一扫
移动阅读更方便
你可能感兴趣的文章