星期三, 5月 18, 2011

Silverlight 的初始值

最近在學習 Silverlight,這裡紀錄一下在寫 Silverlight 時,會常常用到的技巧。我們初始程式時,經常都會給程式初始值,那 Silverlight 要如何給初始值呢?有兩種方法,一是用 QueryString,這方式在寫網頁的時候一定常用,二是可以設定放置在 Silverlight 的 Html 的參數,有點模糊吧!我們直接看code..

第一種方法 QueryString

http://localhost:2418/?qs1=123&qs2=456&qs3=789

xaml

<StackPanel x:Name="LayoutRoot" Background="White">
<TextBlock x:Name="tbInitValue" TextWrapping="Wrap" Text="InitValue:" Foreground="Red"/>
<StackPanel x:Name="stInitValue" HorizontalAlignment="Left" Margin="8,0,0,0" />
<TextBlock x:Name="tbQueryString" TextWrapping="Wrap" Text="QueryString:" Foreground="Red"/>
<StackPanel x:Name="stQueryString" HorizontalAlignment="Left" Margin="8,0,0,0"/>
</StackPanel>

.cs

public partial class InitValue : UserControl
{
public InitValue()
{
InitializeComponent();

//QueryString
var qs = HtmlPage.Document.QueryString;
foreach (var key in qs.Keys)
{
TextBlock tb = new TextBlock();
tb.Text = string.Format("{0}:{1}", key, qs[key]);
stQueryString.Children.Add(tb);
}

}
}

第二種方法 InitParams

.App.xaml.cs

private void Application_Startup(object sender, StartupEventArgs e)
{
var obj = new InitValue.InitValue();
this.RootVisual = obj;
//InitParams
foreach (var key in e.InitParams.Keys)
{
TextBlock tb = new TextBlock();
tb.Text = string.Format("{0}:{1}",key, e.InitParams[key]);
obj.stInitValue.Children.Add(tb);
}
}

.html

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="/ClientBin/SilverlightApplication1.xap">
<param name="onError" value="onSilverlightError">
<param name="onError" value="onSilverlightError">
<param name="background" value="silver">
<param name="minRuntimeVersion" value="3.0.40818.0">
<param name="autoUpgrade" value="true">
<param name="enableHtmlAccess" value="true">

<param name="initParams" value="initp1=a987,initp2=b654,initp3=c321">

<param name="windowless" value="false">
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&amp;v=3.0.40818.0" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none;">
</a>
</object>

結果:

image

這裡做個簡單的說明,用 InitParams 的時候需要在 App.xmal.cs 裡面處理,在用 QueryString 需要在 xmal.cs 裡面處理,這兩個的差別要注意一下,有問題再一起討論吧!!

參考:
http://www.switchonthecode.com/tutorials/silverlight-2-using-initparams

星期五, 5月 06, 2011

(敗家文)Synology DS410 + WD2TB x3 合體

上個月月底的某一天的晚上,看著 nba 精彩刺激的季後賽,忽然聽到 server 上的硬碟咖啦咖啦響,心想完蛋了,硬碟不會葛屁了吧!馬上遠端連去 server 看看,喵低,果然進不去了..案,之後拔出來用一堆有的沒有的方法(搖一搖它..摸一摸它..拜一拜插根香..還有人叫用電擊的方式XD)看會不會活起來,不過都沒有成功,唉唉唉..一整個很鬱悶..

話說遇到了還是遇到了,還是要想個辦法解決,我不要再出現硬碟掛了只能偷哭得窘境,探聽了一下搜尋的一下..就敗了下列的東西..><||..

image

很快的,早上訂貨下午箱子就會出現在你家裡(這樣消費真的有快感XD)

先看盒子照..

P1090061

脫掉衣服,感覺還蠻素雅的

P1090063

大食怪的 2TB 硬碟的近照..威..

P1090064

看一下內裝..未放硬碟..

P1090067

全部塞進去就對了,合體!!

P1090069

開始工作照..

P1090072

看一下合體起來的軟體畫面..

 image

貼完啦大概是這樣,軟體的操作界面還蠻直白的很容易懂,說明書很多很多頁很詳細,等下次用到有心得再上來報告,先把資料備份安全的部份處理好,讓硬碟死掉的惡夢在我生活中消失,這就是花錢當凱子的好處,哈,如果有人有跟我一樣的顧慮,怕哪天硬碟死了自己也會哭死的,可以考慮一下衝下去,別想太多..^___^

參考:
http://www.synology.com/cht/index.php