且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

WPF杂记…

更新时间:2022-10-03 10:50:51

本文转自 sun8134 博客园博客,原文链接:http://www.cnblogs.com/sun8134/archive/2010/07/13/1776489.html   ,如需转载请自行联系原作者


添加WPF这个分类有段时间了

至今分类里一篇随笔都没有(主要是啥也不会…)

前两天正好流通点书,需要个程序分配地点,试试效果。

当然用WPF还有其他的考虑…

.net 3.5安装包200多M

.net 4.0只有40多M

当然装少的了…

 

记录下中间遇到的小问题吧:

1,窗体传值

几个 窗体间传值是winform最常见的问题,其实iWPF和winform方法是一样的,只要:

public string guancang = " "; 

然后在其他窗体里

selectmoveto win2 = new selectmoveto()
win2.Owner = this;
win2.ShowDialog();
bookmove.Text = win2.guancang;

 

向窗体传值的话,只要改下构造函数就可以了

不过要注意哦,别像我一次写成了

Window win2 = new selectmoveto()


这样自定义的变量可就不存在了…

 

2,登陆框

需要小改下App.xaml

<Application x:Class="wpftest.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Startup="Application_Startup"
             ShutdownMode="OnMainWindowClose" >

然后在App.xaml.cs里

private void Application_Startup(object sender, StartupEventArgs e)
        {
            MainWindow winMain = new MainWindow();
            Window1 winDlg = new Window1();
            bool? dlgResult = winDlg.ShowDialog();
            if (dlgResult.HasValue && dlgResult.Value)
            {
                winMain.Show();
            }
            else
            {
                winMain.Close();
            }
        }

注意主窗体一定要先创建,不然登陆后整个程序就退出了…

另外,登陆窗体的返回值我用的是

this.DialogResult = true;
和
this.DialogResult = false;
当然也可以自己用其他的…


3,在code里制定控件的颜色(16进制)

直接在xaml里指定颜色(16进制),其实很简单,直接赋值就可以

<TextBlock Text="索取号" Name="call_no"  Foreground="#FFE8E2E2"/>
不过要在code里指定么…
目前我还没找到有什么好的方法…
 
指定颜色可以用:
new SolidColorBrush(Colors.Red);

或者

new SolidColorBrush(Color.FromArgb(byte a,byte r,byte g ,byte b));


不过要想指定16进制的颜色么…

看别人给出的办法是

<TextBlock x:Name="hide"  Visibility="Collapsed" Background="#FF959595" />

然后

this.call_no.Foreground = (SolidColorBrush)hide.Foreground;