almost 4 years ago

此為台師大資訊實務應用讀書會 第四堂課(支線):Linux之簡報與影片內容,若有任何錯誤歡迎指證,非常感謝!

簡報連結:https://speakerdeck.com/sinmaplewing/zi-xun-shi-wu-ying-yong-du-shu-hui-di-si-tang-ke-zhi-xian-linux

影片連結:http://youtu.be/WEz9-dxFIw0

 
almost 4 years ago

此為台師大資訊實務應用讀書會 第七堂課:jQuery之簡報與影片內容,若有任何錯誤歡迎指證,非常感謝!

簡報連結:https://speakerdeck.com/sinmaplewing/zi-xun-shi-wu-ying-yong-du-shu-hui-di-qi-tang-ke-jquery

影片連結:http://youtu.be/bzKpzV7lxhc

 
almost 4 years ago

此為台師大資訊實務應用讀書會 第六堂課:Basic CSS之簡報與影片內容,若有任何錯誤歡迎指證,非常感謝!

簡報連結:https://speakerdeck.com/sinmaplewing/zi-xun-shi-wu-ying-yong-du-shu-hui-di-liu-tang-ke-basic-css

影片連結:http://youtu.be/Vc94M84mTUo

 
almost 4 years ago

最近都在準備關於台師大資訊實務應用讀書會,目前我也希望能夠公開我的部分,簡報內容可能有誤,還請各位能夠看到錯誤能夠回報,非常感謝!

目前HTML簡報內的內容大體上都已經整理成Blog文章了,不過各位還是可以看看這份簡報。

簡報連結:https://speakerdeck.com/sinmaplewing/zi-xun-shi-wu-ying-yong-du-shu-hui-di-tang-ke-basic-html

 
almost 4 years ago

為了開發Windows Phone APP,除了需要安裝Visual Studio 2012外,還必須安裝Windows Phone SDK 8.0,底下利用圖文的方式來說明整個流程。

首先選擇開啟新專案:

選擇C#類別中的Windows Phone,選擇安裝Windows Phone SDK 8.0:

點下確認後,就會看到下載Windows Phone SDK 8.0的連結:


接著選擇要下載的項目:

然後會推薦你使用下載器:

下載好後,使用下載器下載主安裝程式:




下載好後,開始進行安裝吧!




完成後就可以開始開發Windows Phone 8的程式了!

 
almost 4 years ago

因為要使用Hyper-V,結果發現自己的Windows 8並不是Pro版,因此就打算來利用手邊的序號來進行升級,本來想說是不是要重灌,結果發現只要打序號進去後更新就OK了!底下附圖為過程:

從右邊點選電腦資訊:

點選紅圈圈住的地方:

選擇已經持有序號了:

輸入自己手邊的序號:

認證好後就同意吧!

開始升級等待中:

更新完畢!

此時就會看到已經升級到Windows 8 Pro了!

這時就可以增加一些Pro才有的功能,例如:Hyper-V。

升級流程大概就是如此,簡單吧!!

 
almost 4 years ago

目前Windows 8.1已經釋出了,多了更多不錯的特色,希望大家趕快也跟著Windows 8.1吧!

基本上升級的方式跟你去市集下載APP類似,先進去市集就會看到首頁最左邊就有Windows 8.1的下載連結。

點下去之後會看到類似於一般APP的介紹頁,在此頁點下安裝。

接著就如同下載APP一樣,開始跑進度條。

跑完後就會重新開機,然後會設定非常久,就耐心等待一下吧!

再度啟動進去Windows 8.1後,會需要設定一下帳戶,設定完後就可以開心使用Windows 8.1,是不是很簡單呢?

參考資料

  1. [教學]Windows 8 Pro 免費升級 Windows 8.1 Pro:http://software.intel.com/zh-cn/blogs/2013/10/19/windows-8-pro-windows-81-pro
 
almost 4 years ago

目前XNA已經被微軟暫停維護的情況下,大家使用的替代方案則是Monogame,而Monogame也是目前唯一可讓你移植XNA遊戲到Windows 8平台上的方法,但究竟該怎麼在Monogame底下判斷目前Windows 8的Snap View狀態呢?底下就來好好說明一下。

GameState:用於判斷目前Snap View的狀態

在Windows 8底下,APP有三種顯示方式:全螢幕、佔1/4的Snap View以及佔3/4的Snap View,你可以在底下增加此GameState Class並在MainGame初始化的時候順便呼叫GameState.Initialize,去初始化GameState。

GameState.cs
using Windows.UI.Core;

namespace MainGame
{
    public enum WindowState { Full = 0, Snap1Quarter = 1, Snap3Quarter = 2 };
    public static class GameState
    {
        public static WindowState _windowState;
        public static CoreWindow _window;
        public static Rect _windowsBounds;

        public static void Initialize()
        {
            _window = CoreWindow.GetForCurrentThread();
            _windowsBounds = _window.Bounds;
            _windowState = WindowState.Full;
            _window.SizeChanged += _window_SizeChanged;
        }

        static void _window_SizeChanged(CoreWindow sender, WindowSizeChangedEventArgs args)
        {
            if (args.Size.Width == _windowsBounds.Width)
            {
                _windowState = WindowState.Full;
            }
            else if (args.Size.Width <= 320.00)
            {
                _windowState = WindowState.Snap1Quarter;
            }
            else
            {
                _windowState = WindowState.Snap3Quarter;
            }

            _windowsBounds.Height = args.Size.Height;
            _windowsBounds.Width = args.Size.Width;
        }
    }
}

此時,即可使用GameState._windowState來做判斷,如果是WindowState.Full即是全螢幕,而WindowState.Snap1Quarter是佔1/4的Snap View,最後WindowState.Snap3Quarter則表示是佔3/4的Snap View。

接著在Draw的時候進行判斷即可:

MainGame.cs
protected override void Draw(GameTime gameTime)
{
  GraphicsDevice.Clear(Color.Gray);
  
  // TODO: Add your drawing code here
  switch(GameState._windowState){
    // 判斷並繪製
  }
}

參考資料

  1. Windows 8, XNA and MonoGame - Part 3, Code Migration and Windows 8 Feature Support:http://solutions.devx.com/ms/msdn/windows-client/windows-8-xna-and-monogame-part-3-code-migration-and-windows-8-feature-support.html
 
almost 4 years ago

在開發Windows Phone APP的HTML5專案中,究竟該如何從Javascript傳給APP的C#程式碼中呢?現在就讓我來介紹一下吧!

使Javascript能與APP的C#程式碼溝通

首先先對嵌入至HTML5專案中的瀏覽器加上當觸發ScriptNotify事件時處理的函式,Javascript可藉此觸發ScriptNotify事件將字串傳給APP使用。在此範例裡,設定當Javascript傳字串過來時,就使用MessageBox.Show將字串顯示出來。

MainPage.cs
private void Browser_Loaded(object sender, RoutedEventArgs e)
{
  Browser.IsScriptEnabled = true;
  Browser.ScriptNotify += HTML_Script_Launched;
  // 在此加入您的 URL
  Browser.Navigate(new Uri(MainUri, UriKind.Relative));
}

private void HTML_Script_Launched(object sender, NotifyEventArgs e)
{
  MessageBox.Show(e.Value); 
}

註:亦可直接從xaml中增加。<phone:WebBrowser x:Name="Browser" ScriptNotify="HTML_Script_Launched" />

接著只要在Javascript端,呼叫window.external.notify函式並傳值即可。

index.html
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" href="/html/css/phone.css" />
    <title>Windows Phone</title>
    <script>
        window.external.notify("Hello World!");
    </script>
</head>
<body>
    <div>
        <p>我的應用程式</p>
    </div>
    <div id="page-title">
        <p>頁面標題</p>
    </div>
</body>
</html>

這樣就可以了!底下是結果:

參考資料

  1. Getting Started With Windows Phone 8 HTML5 Apps:http://blogs.msdn.com/b/matthiasshapiro/archive/2013/02/15/getting-started-with-windows-phone-8-html5-apps.aspx
 
almost 4 years ago

在開發Windows Phone APP的HTML5專案中,究竟該如何從C#執行網頁的Javascript程式呢?現在就讓我來介紹一下吧!

C#呼叫Javascript端的函式

首先在網頁中定義一個changeTitle的function,讓C#端可以利用這個function更改id為page-title的標籤內的第一個p標籤內的值。

index.html
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link rel="stylesheet" type="text/css" href="/html/css/phone.css" />
        <title>Windows Phone</title>
        <script>
            var changeTitle = function (text) {
                document.querySelectorAll("#page-title p")[0].innerHTML = text;
            }
        </script>
    </head>
    <body>
        <div>
            <p>我的應用程式</p>
        </div>
        <div id="page-title">
            <p>頁面標題</p>
        </div>
    </body>
</html>

為了示範,在這裡更改按下[上一頁]的按鈕的行為為呼叫Javascript端的changeTitle的function,並且傳入"Hello World!"這個字串,底下是程式碼:

MainPage.cs
private void BackApplicationBar_Click(object sender, EventArgs e)
{
  Browser.InvokeScript("changeTitle", new string[] { "Hello World!" });
  //Browser.GoBack();
}

註:如果不需傳參數,直接使用Browser.InvokeScript("changeTitle")即可。

尚未按上一頁按鈕之前:

按下上一頁按鈕之後:

C#直接執行Javascript端的程式碼

依照上面的道理,其實可以利用eval()函式來執行Javascript端的程式碼。所以上述範例其實可以改成:

MainPage.cs
Browser.InvokeScript("eval", 
    new string[] { "document.querySelectorAll("#page-title p")[0].innerHTML = "Hello World!";" });

參考資料

  1. Getting Started With Windows Phone 8 HTML5 Apps:http://blogs.msdn.com/b/matthiasshapiro/archive/2013/02/15/getting-started-with-windows-phone-8-html5-apps.aspx