none
c#开发几个问题 RRS feed

  • 问题

  • 1,应用中整个生命周期内有效的变量放在哪里比较合适,原来想写在App类中。Page和UserControl中不知道如何获取App对象。不知道正确应该放哪里?

    2,音乐播放是用MediaElement吗?同时,用多个是否有问题?那一般按钮音效用什么实现?

    3,文本字体使用自定义的fnt文件如何实现?

    4,有个png文件,想把除了透明部分以外都改为黑色,有没有简单的方法实现?

    请版主帮忙解答一下,谢谢。

    2012年6月4日 15:59

答案

  • 1. App.Current 就可以获得当前的App实例, 放哪比较合适? 这个根据你的实际情况决定,那都可以,要在整个应用生命周期中存在,那么使用App级别或者静态成员都可以,甚至你也可以通过序列化反序列化进行数据持久化。 Page的值通常在Page的整个周期里比较合适。

    2. 是的, 多个没有问题,按钮音效?你是指播放一些短音,比如叮咚的 wav 声音? 你可以用 MediaElement ,你完全不需要创建一个可视的MediaElement ,就在C#中 new 一个MediaElement对象,然后通过读入声音文件播放即可:

                MediaElement snd = new MediaElement();
                StorageFolder folder = await Package.Current.InstalledLocation.GetFolderAsync("Sounds");
                StorageFile file = await folder.GetFileAsync("beep.wav");
                var stream = await file.OpenAsync(FileAccessMode.Read);
                snd.SetSource(stream, file.ContentType);
                snd.Play();

    3. 安装到系统字体,然后使用。 或者指定你的字体文件的uri地址。 比如你需要将你自己的Font打包在你的项目中,例如下面的目录:

     

    这个myfont.ttf的FontName是Broadway (一定要留意这个FontName,你可以双击打开你的字体,第一行就能看见)。然后你就可以在XAML中使用uri定位这个字体并使用:

    <TextBlock Text="Testing" FontFamily="fonts/myfont.ttf#Broadway"/>

    4. 简单的方法是用PS修改一下,或者任何可以修改图片的工具去修改。

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 whyuan 2012年6月6日 2:12
    2012年6月5日 17:33
    版主