2010年5月13日 星期四

轉貼 - 讓WPF 介面能全球化和本地化

轉貼自 狼翔天地
http://jjnnykimo.pixnet.net/blog/post/21885938


作一些簡單的補充

簡單的說,建立一個 lang 的資料夾,存放 ResourceDictionary(WPF) 的格式的xaml檔 來存放不同的語言

接者在
程式啟動後就呼叫讀取存放語言的XAML


注意在 button 那邊要使用
DynamicResource 來 讀取 lang 資料夾中所設定的語言

如 Button 中的 Content="{DynamicResource Cancel }"

使用 DynamicResource 的話當 程式會依據 作業系統中設定的地區語言選項改變來作變更



地區語言選項取得補充:


http://msdn.microsoft.com/zh-cn/library/system.globalization.cultureinfo%28en-us,VS.71%29.aspx (MSDN)

http://www.cnblogs.com/whtydn/archive/2009/10/13/1582279.html (风浪网编程海角 中的整理)


此外
CultureInfo.CurrentCulture.Name 是取得全名

如 台灣是
zh-TW

若要只取語系的話
可以用
CultureInfo.CurrentCulture.TwoLetterISOLanguageName
or
CultureInfo.CurrentCulture.Parent.Name
or
currentCultureInfo.Parent.IetfLanguageTag

三 個方式取得

如台灣的話就會取得
zh






2010年5月5日 星期三

轉錄 同時撥放音效

雖然之前有紀錄 一篇使用System.Media.SoundPlayer 撥放音效的方法

但是 SoundPlayer 的方法 一次只能播放一個聲音檔,若要同時有背景音樂 和音效的 話用 sound player 方法 就不可能實現。



這裡我的方式是將背景音樂用SoundPlayer 播放, 音效的話就使用 WindowsMediaPlayer 的方式播放

WindowsMediaPlayer 要 add reference 在 com 元件中的 windows media player , 順利引用後就會有一個WMPLib 的 name space


簡單的播放 code 如下

WMPLib.WindowsMediaPlayer mplayer = new WMPLib.WindowsMediaPlayer();

mplayer.URL = "聲音檔位置";
mplayer.controls.play();




網路上還有說道其他的方式,如 用 多個thread 放 SoundPlayer ,不過我是沒有試出來就是




/// WindowsMediaPlayer 設定循環撥放的方法
mplayer.settings.setMode("loop", true); 轉自 阿偉蘇的程式記事本



附錄 轉錄四種播放聲音的方法
http://www.sunxin.org/forum/thread/18937.html?page=0

2010年5月4日 星期二

WPF 教學網站心得摘要 lesson 13 - 16

看完 微軟所提供的教學影片 所紀錄下來的心得摘要

網址
http://msdn.microsoft.com/zh-tw/netframework/cc963622.aspx


#13 2D 動畫 #1 – 宣告式動畫使用技巧
1. 如何在xaml檔建立動畫
storyboard 屬性設定
兩個屬性範例
a. autoReverse: 動畫執行完畢接下來會倒者執行, boolean
b. repeatDeavior: 是否重複執行,內建type , 要的話裡面輸入"Forver"
2. Triggers : 觸發事件讓物件的屬性作變化,
example: page.load 事件
3. 範例
a. 放大 : DoubleAnimation
b. 旋轉: DoubleAnimation
c. 顏色變換: ColorAnimation
d. 移動:PointAnimation


#14 2D 動畫 #2 – 事件觸發技術與動畫應用

事件的使用,如滑鼠 click事件
範例包含:
1. start : 最好將 StoryBorad命名 好讓其他功能能呼叫如 Pause, Resume,Stop
2. Pause: PauseStoryboard
3. Resume: ResumeStoryboard
4. Stop: StopStoryboard



#15 2D 動畫 #3 – 使用程式碼控制動畫運行

兩個範例

1. 變更寬度大小: DoubleAnimation
2. 變更顏色: ColorAnimation
3. TimeSpan的宣告方式: (時,分,秒)
4. 呼叫的方式用 BeginAnimation(屬性,物件)
以改變寬度為例 , 屬性 為 Rectangle.WidthProperty ,物件 如 DoubleAnimation
5. 可以用 Storyboard 的方式, add 需要使用animation(xxx.child.add) ,然後在一次呼叫


#16 2D 動畫 #4 – 使用 Path 製作各類型動畫路徑

1. 使用path 定義畫出路徑 (PathGeometry)
2. 範例有 從 xaml 檔 和 外部使用code控制的方法

2010年5月3日 星期一

音效產生編輯軟體

好得應用程式加上音效會有一種畫龍點金的效果,
在此作一些簡單的紀錄一些錄音編輯產生音效的軟體,

1. Audacity(free)
錄音混音都可以

2. SmartSound(有試用版)
音效後製處理

3. ACID(有試用版)
音效後製處理

4. VMPK(free)
模擬鋼琴等樂器產生音效

5. sfxr(free)
產生復古小遊戲的音效

6. Overture 4.0
讀譜和製作樂譜的軟體,好像有點離題