SupportedOrientations 和 Orientation

SupportedOrientations比较有用,而Orientation只能影响到设计时的状态,无法影响运行时的状态,因此可以不管Orientation。

 

Landscape分为Left和Right两种

竖直着看的话,Landscape Left是屏幕在键盘左边,Landscape Right是屏幕在键盘右边。

一旦支持了Landscape,就必须同时支持左右两种。

 

获得分辨率

Application.Current.Host.Content.ActualWidth

Application.Current.Host.Content.ActualHeight

 

屏幕键盘

On-Screen Keyboard,也叫software input panel(SIP),竖着高339像素,横着搞259像素。

 

Input Scope:调出不同的键盘

目前有62种input scope但只有11种不同的键盘,也就是说,其中很多是不同名字的input scope对应着同一种键盘,例如numbers和digits。

更多内容参考P66

Input Scope只能用来粗略限制一下输入(而且是在没有物理键盘的情况下),精确的控制还是要通过编程。

例如要控制TextBox的输入只能是数字:

image

 

多行的TextBox

一般做下面三步:

  1. 把AcceptsReturn属性设置为true(默认是false)
  2. 把TextWrapping属性设置为Wrap(默认是NoWrap)
  3. 把MinHeight设置得高一点,让人一看就是多行的。

TextWrapping指的是一行的文字超出textbox宽度的时候,是否自动折行。若一个TextBox只设置了TextWrapping=Wrap,AcceptsReturn=false,则它也是多行的,只不过里面无法用回车换行。

 

英文大小写规范

全大写:application title

全小写:

1 各种title: page title, group title, list title, panorama and pivot headings. 

2 button text

句子首字母大写:其他所有的

单词首字母大写:不要用

 

标点规范

不要用冒号,除非本来就该有。

不要用省略号,除非进度条的文字说明。(不像PC上预知会打开新窗口而加上…)

用逗号来表示分割。

用&不用and,用短不用长。

 

滚动控件 ScrollViewer

滚动条的可见性VerticalScrollBarVisibility/HorizontalScrollBarVisibility有四个枚举值,但实质上只有两个含义。

Visible=Auto=启用

Disabled=Hidden=禁止

VerticalScrollBarVisibility的默认值是启用。

HorizontalScrollBarVisibility的默认值是禁止。

 

宽高大小

应该通过MinHeight和MaxHeight等,给出一个范围,而不是指定具体值(给Height赋值)。

Auto意味着它的值是double.NaN,即根据内容来决定大小。当没有给Height,Width显示赋值的时候,值都是double.NaN。

若要判断长度宽度值是否是Auto,只需要用double类的静态方法IsNaN判断。

若要获得长度宽度值到底是多少,用ActualHeight,ActualWidth,这两个都是只读的。

 

Margin和Padding

Margin和Padding都是Thickness类型的值,该类型的值可以由1个、2个、或4个参数来决定。

4个参数的顺序是:左、上、右、下

2个参数的顺序是:左右、上下  例如1,2表示成四个参数是1,2,1,2

Margin指的是与父元素的间隔,较常用。允许负值。

Padding指的是与子元素的间隔,不常用。不允许负值。TextBox的Padding默认值是2,一般不建议修改Padding的默认值,因为这些默认值是微软反复尝试过之后预设好的。

 

打电话

PhoneCallTask是用来打电话的,但在模拟器上实例化PhoneCallTask会抛异常退出,因此可以通过Microsoft.Devices.Environment.DeviceType这个属性来判断运行环境。

打电话的代码如下:

void TapHereToCall_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    if (Microsoft.Devices.Environment.DeviceType == Microsoft.Devices.DeviceType.Emulator)
    {
        return;
    }
        
    PhoneCallTask phoneLauncher = new PhoneCallTask();
    phoneLauncher.DisplayName = this.ContactNameTextBox.Text;
    phoneLauncher.PhoneNumber = this.PhoneNumberTextBox.Text;

    phoneLauncher.Show();
}
posted on 2011-09-29 13:53  MainTao  阅读(364)  评论(0编辑  收藏  举报