windows10项目学习笔记

来源:互联网 发布:最实用的端口映射软件 编辑:程序博客网 时间:2024/06/10 00:22

        从今年年初开始,开始学习win8/wp8的编程,同时也是从零开始学习VS2012(原先一直用C++Builder)。水平所限,摸着石头过河,中间碰到很多问题,大多是很初级的技术问题,在这儿记录一下,顺便与大伙共享。不对的地方,欢迎指正。

今天先说第一个。我在VS中下载安装了一个样例项目,尝试加入自己的音频文件,可总是跳出异常,反复调试了一天,终于找到原因:原来是新加入的音频文件没有随生成的exe文件一块拷贝过去(术语叫做:部署)。正确的操作是这样的:

首先将声音文件拷到项目目录中,在VS2012/VS2013(中文版)的“解决方案资源管理器”中找到新拷入的文件(“解决方案资源管理器”中有个“显示所有文件”的按钮,需要先选中),在文件上右击,点“包括在项目中”,再右击,选“属性”,将“属性”窗口中的“内容”栏由False(否)改为True(是)。


2013-12-24,在练习一个wp8项目时,发现TextBox超过一定长度后不能再显示,网上搜索了一下,原来所有界面控件Render Size都有2048Pixel的限制。

2014-1-10,在练习一个wp8的c#、c++混合项目时,c++代码无法调试,提示:“当前无法命中断点,没有为本文档加载任何符号”,网上搜索了一下,原来托管代码和本地代码不能同时调试,只能选择其一。右击c#项目->属性->调试->调试器类型,在UI任务和代理任务中选择其一即可。

2014-1-11,在用HttpRequest抓取网页时,连续调用总是返回相同的内容,解决办法参看链接http://my.oschina.net/junwong/blog/37770。

2014-1-12,使用System.Threading.Timer时,在回调函数中不能直接操作UI界面,必须用委托,这样写:                       

                       TextBlock1.Dispatcher.BeginInvoke(delegate()
                        {
                            TextBlock1.Text = "启动";
                        });

                       以上是C#代码,c++中这样写:

                       Dispatcher->RunAsync(Windows::UI::Core::CoreDispatcherPriority::Normal,
                       ref new Windows::UI::Core::DispatchedHandler([this]()
                       {

                           //...

                       }));

                      后来我又找到一个定时器Windows::UI::Xaml::DispatcherTimer,能直接操作UI控件,使用更方便。

2014-1-25,有个地方设计用System.Windows.Shapes.Rectangle的Fill来显示图标,按一下显示(Fill=xxxBrush),按一下消失(Fill=null),发现不能正常工作,查帮助才知,原来当Fill=null时,控件就不响应鼠标了。(原文:如果 Fill 为 null(或未指定),则对象中没有可命中测试区域。)。


2015-6-27,初学者一般在Visual Studio提供的样例项目基础上开发,有时从别的项目中拷贝过来cpp和h文件后,编译通不过,可以从这两个地方找找原因:一是看看原项目的pch.h文件,把缺少的头文件加进来,二是查看原项目的属性->链接器->输入->附加依赖项,把缺少的lib文件加上。





原创粉丝点击