原創:學習英語小助手(閱讀粘貼的英文,使用MVVM)


對於英語,我常常不知道怎么發音是正確的,雖然有很多軟件像有道、靈格斯、金山詞霸等都有閱讀的功能,但發揮下程序員的精神,自己動手用WPF寫了一個。

對於Windows系統來說,其實已經內置了這一個功能,就是屏幕講述人。微軟則把這個功能封裝好了,我們只要調用就行,關鍵代碼:

引用命名空間:

using System.Speech.Synthesis;

使用其命名空間下的類,toSpell是要讀的字符串:

SpeechSynthesizer synthesizer = new SpeechSynthesizer();

synthesizer.SpeakAsync(toSpell);

使用的是異步調用,避免用戶界面阻塞。

Windows Media Player 的播放工具條,有特效,也模仿了這個特效。其實,就是用WPF中的事件觸發器(EventTrigger)和動畫(Animation)很容易實現。

View Code
<Grid DataContext="{StaticResource viewModel}">
<!-- Animation for the buttons.-->
<Grid.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard >
<Storyboard TargetProperty="Opacity" TargetName="borderPanel">
<DoubleAnimation From="0" To="1" Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard TargetProperty="Opacity" TargetName="borderPanel">
<DoubleAnimation From="1" To="0" Duration="0:0:2"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Grid.Triggers>

控制的是按鈕所在的Border的透明度,Opacity屬性。當鼠標進入我們要監控的區域時,在2秒事件內,使透明度從0到1,即顯示出來;當鼠標離開我們要監控的區域時,同樣時間內,使透明度從1變為0,即不可見。
下面是程序剛啟動時的截圖,注意鼠標在監控的Grid控件內:

當我們使鼠標離開時,則會使Paly、Pause按鈕所在的工具條消失:

正常播放時,可以使Pause變可用,Play按鈕變灰:

程序編譯環境 VS2010 + .NET 4 + WPF,運行系統須為Windows Vista 及其上

源代碼下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM