C#笔记之一(WPF)
Xaml部分
- 对于有Text或Content属性的控件,想要使用例如Segoe MDL2 Assets:
<TextBlock FontFamily="Segoe MDL2 Assets" Text=""/>
其中Text="&#x
后面的可以从字符映射表中查看。 - 有多个具有相同数值属性的空间,不必一个个打出来,可以使用ResourceDictionary定义相同属性然后在写出每个控件的时候引用,例如:
<Window.Resources>
<ResourceDictionary>
<Style TargetType="Button" x:Key="QuickBarButtons">
<Setter Property="Width" Value="19" />
<Setter Property="Height" Value="19" />
</Style>
</ResourceDictionary>
</Window.Resources>
....
<Button Style="{StaticResource QuickBarButtons}"/>
<Button Style="{StaticResource QuickBarButtons}"/>
这样后面两个生成的button都是长宽分别是19像素的控件。
C# code部分
- 字符(串)大小写转换
一开始我是用的从int
强制转换成char
(Convert.ToChar()
),小写a-z的对应int value是从97到122,数值减去32即变成大写,后来发现只要使用Char.ToUpper()
就可以了,真的是naïve。 - 其他实用字符串函数
string a = " AAA ";
// 去除首尾空格
string b = a.Trim();
// 替代所有指定字符为另一指定字符
string c = a.Replace("A", "B");
// 子字符串,语法都是第一个数字是开始的index,第二个是长度,只不过一个是取一个是去
string d = b.Substring(1, 2);
string e = b.Remove(0, 1);
d == e; // true
// 字符串转换为字符数组
char[] ca = a.ToCharArray();
- 格式化输出
有两种方式,
以Console.WriteLine()为例:
-直接在WriteLine里面写出
Console.WriteLine("{0}", x});
其中x是某个变量(可以是字符串,整数这种基本类型)。
-新定义一个string
string output = String.Format("{0}", x});
Console.WriteLine(output);
C语言里面的\n \t这种标识符也可以使用。
如果要format数值类型的话,例如
String.Format("{0,N3}, x};
代表在x的小数点后面取3位。N这个我比较常用,对于其他的格式,可见这个MSDN链接。 - 打开文件和存储文件对话框
var dlg = new Microsoft.Win32.OpenFileDialog
{
DefaultExt = ".txt", // 设定默认扩展
Filter= "txt file (*.txt)|*.txt|All files (*.*)|*.*"
};
Nullable<bool> result = dlg.ShowDialog();
if(result==true)
{
string file = dlg.FileName;
}
对于保存的话只要把OpenFileDialog
改成SaveFileDialog
。
- TextBox控件相关
可以fire一个TextChanged的event来达成诸如ScrollToEnd()的操作(对于类Console Windows的实现有帮助)。
可以设置ScrollViewer属性的visibility。
TextBox的KeyDown event可以实现类似回车确定的功能,只要在相应code里写上
private void OnEnterKeyDown(object sender, KeyEventArgs e)
{
if(e.Key == Key.Enter)
{
DoSomethingHere();
}
}
- Lis相关
- 在函数体内需要谨慎使用
List.Reverse(input)
这个method,因为它作用于自身,所以它会使input本身reverse掉,即使函数没有返回值。 -
List.GetRange()
就是list版的String.SubString()
- 访问MainWindow的数据
var mainWindow = Application.Current.MainWindow as MainWindow;
然后就可以访问这个对象的属性来修改或是读取其中public的变量了。
网友评论