要將一般的 紀錄 數字 的 string 轉為short(int16) 可以用以下的方法
在此先假設 這個 string temp 是 10 進位的數字
1. 強制轉型 (short) ex. (short)temp
2. System.Convert ex. System.Convert.ToInt16(temp)
3. Short.Parse() ex. short.Parse(temp)
--------------------------------------------------------------
但 若是 0x...格式的話 如 0x0012
則可以使用
System.Convert.ToInt16(temp,16)
參考網址 MSDN
2010年6月21日 星期一
2010年6月17日 星期四
WPF引用外部封裝的資源檔
標籤:
C sharp
在WPF 若要引用 XAML 檔的話 可以使用以下的簡單語法
但是 若要使用 外部封裝的XAML檔的話 這種語法是會讀到主程式的相對路徑
如圖, A 是主程式,B 是引用的外部DLL ,此時呼叫 B 裡面的資源檔的話, 會從A 程式的相對位置找。
所以想要使用 在 B 定義的資源檔的話,code 就要改寫為
就是B專案包成Dll的名稱
參考網頁
MSDN
Coding James
System.Windows.Application.LoadComponent(System.Uri(@
"XXX.xaml",System.UriKind.Relative))
但是 若要使用 外部封裝的XAML檔的話 這種語法是會讀到主程式的相對路徑
如圖, A 是主程式,B 是引用的外部DLL ,此時呼叫 B 裡面的資源檔的話, 會從A 程式的相對位置找。
所以想要使用 在 B 定義的資源檔的話,code 就要改寫為
System.Windows.Application.LoadComponent( System.Uri(/DllName;component/XXX.xaml,System.UriKind.Relative))
DllName
就是B專案包成Dll的名稱
參考網頁
MSDN
Coding James
轉錄 C# 錄音 by directx
標籤:
C sharp
基本上是呼叫 directx 的 directsound 的函式庫來達成錄音的目的
Directx 下載
http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displaylang=en
Sample
http://blog.donews.com/uplook/archive/2005/12/14/657145.aspx
Directx 下載
http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displaylang=en
Sample
http://blog.donews.com/uplook/archive/2005/12/14/657145.aspx
2010年6月7日 星期一
轉錄 C# 讀取 Excel
標籤:
C sharp
轉錄自 記憶是苦難的開始
連結字串中的HDR=YES,代表略過第一欄資料
----------------------------------------------------
補充 取得行數列數
延伸上面例子的 objDS 物件
row number = objDS.Tables[0].Rows.Count
Column numbers = objDS.Tables[0].Columns.Count
連結字串中的HDR=YES,代表略過第一欄資料
//引用OleDb命名空間
using System.Data.OleDb;
string path = System.Windows.Forms.Application.StartupPath + @"\a.xls " ;
string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + path + ";Extended Properties='Excel 8.0;HDR=YES'";
OleDbConnection objConn = new OleDbConnection(strCon);
string strCom = " SELECT * FROM [Sheet1$] ";
objConn.Open();
OleDbDataAdapter objCmd = new OleDbDataAdapter(strCom, objConn);
DataSet objDS = new DataSet();
objCmd.Fill(objDS);
objConn.Close();
for (int i = 0; i < objDS.Tables[0].Rows.Count;i++ )
{
MessageBox.Show(objDS.Tables[0].Rows[i][1].ToString());
}
----------------------------------------------------
補充 取得行數列數
延伸上面例子的 objDS 物件
row number = objDS.Tables[0].Rows.Count
Column numbers = objDS.Tables[0].Columns.Count
2010年6月4日 星期五
WPF 教學網站心得摘要 lesson 17-20
標籤:
C sharp
看完 微軟所提供的教學影片 所紀錄下來的心得摘要
網址
http://msdn.microsoft.com/zh-tw/netframework/cc963622.aspx
#17 WPF 影像播放與畫面處理
1. 在XAML 檔中 新增 MediaElement 即可以設定檔案來源及其它的屬性
2. Triggers 在Grid宣告控制其他屬性
3. 利用event 來實現pause and resume 影片的功能
4. Slibar 的範例 (假設 mediaElement 命名為 mediaElement1)
a. 取得影片長度
mediaElement1.NaturalDuration.TimeSpan.TotalMilliseconds;
b. 取得影片現在播放位置
mediaElement1.Position.TotalMilliseconds;
#18 控制項的資料繫結技巧 #1 – 控制項之間的資料繫結
1. Binding 目標: 任何元素與屬性
2. Binding 來源: CLR 物件,
WPF元素,
ADO.NET,
XML
3. Binding 模型: 一次繫結、單向繫結,雙向繫結
4. 動態Binding : inotufyPropertyChanged、DependencyProperty、PropertyDescriptor
5. 語法範例 { Binding Path = Value, ElementName= Binding物件名稱 }
6. ObjectDataProvider 的使用,把物件宣告在XAML檔
#19 控制項的資料繫結技巧 #2 – 資料樣版的定義與套用
1. 資料樣板的設定 (宣告一個class及在XAML檔中宣告引用)
2. XAML檔 新增NameSpace , 例 xmlns = "clr-namespace:NameSpace名稱"
#20 控制項的資料繫結技巧 #3 – Master-Details 資料繫結
1. 宣告樹狀結構CLASS ,以大聯盟球隊為例,(聯盟->區域->球隊)
2. 在listBox 設定兩個屬性決定,資料來源和樣板
a. 資料來源ItemsSource : EX. ItemsSource="{Binding Path=Divisions/Teams}"
b. 樣板ItemTemplate: EX. ItemTemplate="{DynamicResource myTemplate}"
網址
http://msdn.microsoft.com/zh-tw/netframework/cc963622.aspx
#17 WPF 影像播放與畫面處理
1. 在XAML 檔中 新增 MediaElement 即可以設定檔案來源及其它的屬性
2. Triggers 在Grid宣告控制其他屬性
3. 利用event 來實現pause and resume 影片的功能
4. Slibar 的範例 (假設 mediaElement 命名為 mediaElement1)
a. 取得影片長度
mediaElement1.NaturalDuration.TimeSpan.TotalMilliseconds;
b. 取得影片現在播放位置
mediaElement1.Position.TotalMilliseconds;
#18 控制項的資料繫結技巧 #1 – 控制項之間的資料繫結
1. Binding 目標: 任何元素與屬性
2. Binding 來源: CLR 物件,
WPF元素,
ADO.NET,
XML
3. Binding 模型: 一次繫結、單向繫結,雙向繫結
4. 動態Binding : inotufyPropertyChanged、DependencyProperty、PropertyDescriptor
5. 語法範例 { Binding Path = Value, ElementName= Binding物件名稱 }
6. ObjectDataProvider 的使用,把物件宣告在XAML檔
#19 控制項的資料繫結技巧 #2 – 資料樣版的定義與套用
1. 資料樣板的設定 (宣告一個class及在XAML檔中宣告引用)
2. XAML檔 新增NameSpace , 例 xmlns = "clr-namespace:NameSpace名稱"
#20 控制項的資料繫結技巧 #3 – Master-Details 資料繫結
1. 宣告樹狀結構CLASS ,以大聯盟球隊為例,(聯盟->區域->球隊)
2. 在listBox 設定兩個屬性決定,資料來源和樣板
a. 資料來源ItemsSource : EX. ItemsSource="{Binding Path=Divisions/Teams}"
b. 樣板ItemTemplate: EX. ItemTemplate="{DynamicResource myTemplate}"
2010年6月2日 星期三
C# 隱藏 Cursor 和 Stylus
標籤:
C sharp
Cursor 隱藏 /顯示
顯示 Cursor
System.Windows.Forms.Cursor.Hide();
顯示 Cursor
System.Windows.Forms.Cursor.Show();
詳細可參閱 MSDN
Stylus 隱 藏 /顯示
轉錄 Coding James 在 WPF中關閉觸控指標(Disable Touch Pointer)
顯示 Cursor
System.Windows.Forms.Cursor.Hide();
顯示 Cursor
System.Windows.Forms.Cursor.Show();
詳細可參閱 MSDN
Stylus 隱 藏 /顯示
轉錄 Coding James 在 WPF中關閉觸控指標(Disable Touch Pointer)
private void DisableTouchStylus(UIElement u)
{
/// disable flicks gesture
Stylus.SetIsFlicksEnabled(u, false);
/// disable press and hold gesture
Stylus.SetIsPressAndHoldEnabled(u, false);
/// disable tap gesture
Stylus.SetIsTapFeedbackEnabled(u, false);
/// disable touch pointer
Stylus.SetIsTouchFeedbackEnabled(u, false);
}
c# BackGroundWorker
BackGroundWorker
簡單的說讓成是在背景後台環境下執行而不影響 UI
這裡敘述還蠻詳細的
http://www.cnblogs.com/scottckt/archive/2008/05/08/1188974.html
簡單的說讓成是在背景後台環境下執行而不影響 UI
這裡敘述還蠻詳細的
http://www.cnblogs.com/scottckt/archive/2008/05/08/1188974.html
C#取得滑鼠座標
標籤:
C sharp
在網路上找到兩種方式
1. GetCursorPos
引用 user32.dll 的 GetCursorPos function
sample code
Point 中包含 滑鼠的X,Y 座標
參考網站
http://blog.sina.com.cn/s/blog_53864cba0100ch28.html
不過我試不出來....
2. Mouse.GetPosition
使用 System.Windows.Input 的 mouse.GetPosition 傳入 window 或 panel ...
回傳 滑鼠在該物件的 相對座標 (Point)
code
using System.Windows.Input;
......
參考網址 http://msdn.microsoft.com/zh-tw/library/system.windows.input.mouse.getposition%28VS.90%29.aspx
1. GetCursorPos
引用 user32.dll 的 GetCursorPos function
sample code
// We need to use unmanaged code
[DllImport("user32.dll")]
// GetCursorPos() makes everything possible
static extern bool GetCursorPos(ref Point lpPoint);
Point 中包含 滑鼠的X,Y 座標
參考網站
http://blog.sina.com.cn/s/blog_53864cba0100ch28.html
不過我試不出來....
2. Mouse.GetPosition
使用 System.Windows.Input 的 mouse.GetPosition 傳入 window 或 panel ...
回傳 滑鼠在該物件的 相對座標 (Point)
code
using System.Windows.Input;
......
// displayArea is a StackPanel and txtBoxMousePosition is
// a TextBox used to display the position of the mouse pointer.
Point position = Mouse.GetPosition(displayArea);
txtBoxMousePosition.Text = "X: " + position.X +
"\n" +
"Y: " + position.Y;
參考網址 http://msdn.microsoft.com/zh-tw/library/system.windows.input.mouse.getposition%28VS.90%29.aspx
開新視窗產生錯誤 XamlParseException
標籤:
C sharp
在 WPF 中嘗試由程式呼叫打開新視窗(open new window),不知道為何會產生這個錯誤
後來查了一下,推測應該是資源沒有釋放出來,解覺得方式很簡單,只要引用 msvcr70.dll 的 _fpreset() 函式即可, 若是xp環境下可以不比特別指出這個dll 的位置,但在win7(64位元,32位元沒試過)中必須要明確的引用這個dll的路徑
( msvcr70.dll 在 xp 的路徑在 C:\WINDOWS\system32)
sample code
FailOpenWindow.xaml.cs (Interaction logic for FailOpenWindow.xaml)
參考網址 http://social.msdn.microsoft.com/Forums/en/wpf/thread/a31f9c7a-0e15-4a09-a544-bec07f0f152c
後來查了一下,推測應該是資源沒有釋放出來,解覺得方式很簡單,只要引用 msvcr70.dll 的 _fpreset() 函式即可, 若是xp環境下可以不比特別指出這個dll 的位置,但在win7(64位元,32位元沒試過)中必須要明確的引用這個dll的路徑
( msvcr70.dll 在 xp 的路徑在 C:\WINDOWS\system32)
sample code
FailOpenWindow.xaml.cs (Interaction logic for FailOpenWindow.xaml)
public partial class FailOpenWindow : Window
{
[DllImport("msvcr70.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int _fpreset();
public FailOpenWindow()
{
// Reset the Floating Point (When called from External Application there was an Overflow exception)
_fpreset();
InitializeComponent();
}
}
參考網址 http://social.msdn.microsoft.com/Forums/en/wpf/thread/a31f9c7a-0e15-4a09-a544-bec07f0f152c
訂閱:
文章 (Atom)