MISAO with WPF JZ5 2008/6/7.

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

わんくま同盟 東京勉強会 #10 オブジェクト指向 #1 Windows メッセージを使いこな す -Windows 流オブジェクト指向 - とっちゃん 高萩 俊行 Microsoft MVP for Windows SDK 2005/ /09.
Apollo Demo 山口 勝生 自己紹介 大阪でSEやってます。業務で は.NET,JAVA,PHP,VB 何かを触ってます。 FLEXは去年の夏前のまだ β 3の頃に案 件が発生し、開発に携わりました。 その頃はまだ情報が少なく、東京での勉強 会に参加して情報収集し今年の正月に何と.
RSS,Atom の動向 理工学部 情報学科 3 年 片山友輝. 発表内容 ・ RSS,Atom おさらい ・なぜ Atom ができたか? ・ Atom の特徴 ・ Atom の動向 ・ Atom フィードの記述方法 ・ Atom 対応ツール ・参考文献・資料.
Genius Framework について 吉津 卓保( S2 ファクトリー株式会社). 自己紹介.
本プレゼンテーション ( 以下、本書 ) で提供されている情報は、本書が 発表された時点における Microsoft の見解を述べたものです。市場 ニーズの変化に対応する必要があるため、本書は記載された内容の実 現に関する Microsoft の確約とはみなされないものとします。また本 書に記載された情報の正確さについて、保証するものではありません。
Visual Studio 2010 の新機能 Coded UI Test
WPF で作る!! 仮想化支援技術確認ツール CLR/H ひよひよ Crystal Dew World
プログラミング言語ADP 大藤雄久.
表計算ソフトを使って 万年カレンダーを作ろう!
~手続き指向からオブジェクト指向へ(Ⅰ)~
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
2008/03/01 D-BOF k.inaba はじめての initial D 2008/03/01 D-BOF k.inaba
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟 +Beta2?
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟 +Beta2?
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟.
C#によるWindowsFormApplication入門
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
コンポーネントの再利用に必要な情報 えムナウ (児玉宏之)
VBA H106077 寺沢友宏.
Biac /10/25 DI コンテナの本懐 ~ IoC の実装も楽々! biac
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
MISAO with WPF JZ5 2009/2/7.
MISAO with WPF JZ5 2009/2/7.
ASP.NET開発標準化を考えてみよう! わんくま同盟 東京勉強会# /03/15 mxb & 片桐継.
ASP.NET開発標準化を考えてみよう! わんくま同盟 東京勉強会# /03/15 mxb & 片桐継.
独習Java ・ 10.6  Hashtableクラス ・ 10.7  String Tokenizerクラス  12月12日    小笠原 一恵.
はじめてのASP.NET 楽しいアプリ制作の会 #1 TWorks.
PowerPoint初級編 院内研究発表入門.
Live Framework 入門 その2 JZ5(松江) 2009/8/22.
2013/06/22 つくばC#勉強会 Officeで始めるC# 2013/06/22 つくばC#勉強会
CONCURRENT PROGRAMMING
テキストボックス、チェックボックス×2、コマンドボタンを配置する。 コマンドボタンに機能を与える
プログラミング演習3 第2回 GUIの復習.
JIMDO勉強会その2 アカウント新規作成.
Biac /10/ /10/25 DI コンテナの本懐 ~ IoC の実装も楽々! biac
Oracle XEを使ってみよう 初音玲.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
WPF、MVVMパターン構成.
R流・C#マルチスレッドの復讐 2009年05月16日 R・田中一郎
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
Microsoft Visual Studio 2005 Tools for
仕事: SystemVerilogを使いたい
プログラミング演習3 第2回 GUIの復習.
11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS.
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
0.2 プロジェクトの準備 DXライブラリを使うための準備.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
MISAO with WPF JZ5 2008/6/7.
Oracle XEを使ってみよう 初音玲.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
とにかくゲーム作ってみよう (0からのゲームプログラミング)
GUIプログラミングの基本=イベント イベントとは イベントの例 ウィンドウやウィンドウ内のパーツ(ボタン・スクロールバーなど)に発生する
表計算ソフトを使って 万年カレンダーを作ろう!
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
オブジェクト指向プログラミング クラス 継承
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
コレクション・フレームワーク J2EE I (データベース論) 第6回 /
某有名落ちものゲーム っぽいものを作ってみる
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
サブゼミ第7回 実装編① オブジェクト型とキャスト.
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
How To WPF アプリケーション Part4 By 中博俊.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
Windows API Code Pack による アプリケーション開発 ~より便利な Windows 7 対応アプリを 構築するには~
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
How To WPF アプリケーション Part3 By 中博俊.
Presentation transcript:

MISAO with WPF JZ5 2008/6/7

Agenda 自己紹介 ニコニコメソッド 梨ズームも 覚えて帰ってね MISAO Inside (WPF) MISAO

使ってみよう!Windows Live SDK/API(gihyo.jp) katamari.jp 塊 SOUL 自己紹介 JZ5(松江祐輔) @わんくま同盟 ハードウェア技術者 使ってみよう!Windows Live SDK/API(gihyo.jp) katamari.jp 塊 SOUL katamari.wankuma.com WPF初心者

What’s ニコニコメソッド 2007/4/25 ニコニコ動画勉強会 プレゼン中に参加者がケータイからコメントしスライド上にニコニコ動画風にコメントが流れることをしたみたい。  ニコニコ動画勉強会に行ってきました(TAKESAKO @ Yet another Cybozu Labs) ニコニコプレゼンや ニコニコメソッドと呼ばれる。

History of ニコニコメソッドツール 2007/5/1 LingrTickr - 誰でもニコニコメソッドプレゼン(nakatani @ cybozu labs) Yahoo! Widgets, Lingr AIR でニコニコメソッド プレゼン(てっく煮ブログ) Adobe AIR, テキストファイル JZ5調べby Google

歴史その2 WPF でニコニコメソッド(ZOETROPE の日記) 2007/9/9 WPF でニコニコメソッド(ZOETROPE の日記) WPF, telnet 2008/2/2 [AIR][ActionScript]AIR でニコニコ動画風 RSS リーダー作った(プレゼン向け)(public static void main)

歴史その3 第2回1000speakers DDDの概要とその可能性suztomo 萩野・服部研究室 ニコニコプレゼン 2008/2/23 AIR, IRC(USTREAM.TV) 2007/11? 08/2? 萩野・服部研究室 ニコニコプレゼン スライドも含めたPHPによるシステム

6/7 Birth of MISAO Release! 3/29 2008/3/15 東京勉強会 2008/3/29 大阪勉強会 3/15 USTREAM.TV 配信 2008/3/29 大阪勉強会 WPF & IRC(USTREAM.TV) 3/15 3/29 6/7 Release!

MISAO DEMO IRC Twitter(予定) USTREAM.TV RSS/Atom Feeds (未定) Live Messenger 配布場所 予定地 katamari.jp/soulware/

MISAO Inside 透明ウィンドウ アニメーション Thread ?

残念な結果に ウィンドウを透明にするには? WindowのXAML Background="Transparent“ AllowsTransparency="True“ WindowStyle="None“ セットで!

Background=Transparentだけではウィンドウ上のコントロールがクリックできる。 クリックを透過するには? Background=Transparentだけではウィンドウ上のコントロールがクリックできる。 たぶんWPFだけじゃできないので……。 Windows API(Win32 API) SetWindowLong関数

WindowInteropHelper(Me). Handle Win32 APIを使うには ウィンドウハンドルの取得 これまで(Windows.Forms): Me.Handle WPFアプリでの方法: System.Windows.Interop. WindowInteropHelper(Me). Handle コンストラクタ内 では取得できない

SetWindowLongでクリック透過 拡張ウィンドウスタイル(GWL_EXSTYLE)ってのを書き換えます。 スタイルWS_EX_TRANSPARENTを付ける。 Dim style = GetWindowLong(handle, GWL_EXSTYLE) SetWindowLong(handle, GWL_EXSTYLE, _ style Or WS_EX_TRANSPARENT) クリックが透過するのはWS_EX_LAYEREDスタイルも付いているときだけ! 透明ウィンドウにはWS_EX_LAYEREDスタイルは付いてる。

タスク切り替え時 非表示にする 以上でOK? まだです。 これ要らない 拡張ウィンドウスタイルから WS_EX_APPWINDOWを削除 WS_EX_TOOLWINDOWを追加

非アクティブで表示するには、やっぱりWin32 API 常に最前面に非アクティブで表示 最前面だけならXAMLでOK Topmost="True“ 非アクティブで表示するには、やっぱりWin32 API SetWindowPos(handle, _ CType(HWND_TOPMOST, IntPtr), _ 0, 0, 0, 0, _ SWP_NOMOVE Or SWP_NOSIZE Or _ SWP_NOACTIVATE)

ウィンドウ表示時に非アクティブ フックを使うとできます。 ※最初のウィンドウは無理 SetWindowsHookEx UnhookWindowsHookEx CallNextHookEx ※最初のウィンドウは無理 参考:「WPF Tips and Tricks: Window.Show() Without Activating The Window」(IRhetoric)

おわりに ShowInTaskbarも忘れずに。 ShowInTaskbar="False"

アニメーション ウィンドウにのるコントロール ならなんでもアニメ可 結論 WPFには簡単に使えるアニメ機能がある プロパティを変化させてアニメーション 条件 依存関係プロパティ DependencyObjectクラス継承 IAnimatbaleインタフェースを実装 互換性のあるアニメ種類が利用できる状態 したクラス に属する ウィンドウにのるコントロール ならなんでもアニメ可 結論

アニメーション方法 あいうえお あいうえお ②終了値の指定 ①開始値の指定 ③アニメ時間の指定 ④アニメ開始メソッドの  呼び出し

資料1 <Window x:Class="Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300"> <Grid> <Label x:Name="BarLabel" Width="300" Background="Red" HorizontalAlignment="Left" MouseDown="BarLabel_MouseDown" /> </Grid> </Window> Private Sub BarLabel_MouseDown() Dim a = New DoubleAnimation a.From = BarLabel.Width a.To = 0 a.Duration = New Duration(TimeSpan.FromSeconds(10)) BarLabel.BeginAnimation(Label.WidthProperty, a) End Sub

Storyboardを使う 普通は(?)Storyboardを使う 複数のプロパティアニメにも使える 資料2 あとXAMLにも書ける Private Sub BarLabel_MouseDown() Dim a = New DoubleAnimation a.From = BarLabel.Width a.To = 0 a.Duration = New Duration(TimeSpan.FromSeconds(10)) Storyboard.SetTargetName(a, "BarLabel") Storyboard.SetTargetProperty(a, New PropertyPath(Label.WidthProperty)) Dim s = New Storyboard s.Children.Add(a) BarLabel.BeginStoryboard(s) End Sub 資料2

これまで(System.Windows.Forms): Control.Invokeメソッドとか Thread処理 UIの操作 UIの操作はUIのスレッドから行う! WPFではUIスレッド以外から操作すると例外をスロー これまで(System.Windows.Forms): Control.Invokeメソッドとか

Dispatcherオブジェクトを使う。 Dispatcher.Invoke(DispatcherPriority, Delegate) WPFでThread WPFの方法: Dispatcherオブジェクトを使う。 Dispatcher.Invoke(DispatcherPriority, Delegate) 優先順位が 指定できる

私がしばしば書くコード Private Sub MessageReceived(ByVal sender As Object, _ ByVal e As MessageEventArgs) If Dispatcher.Thread IsNot System.Threading.Thread.CurrentThread Then Dispatcher.Invoke(Windows.Threading.DispatcherPriority.Normal, _ New Action(Of Object, MessageEventArgs)(AddressOf MessageReceived), sender, New Object() {e}) Exit Sub End If ' ここにUI 操作 End Sub

基本はBackgroundWorker タイマーはDispatcherTimerを使おう。 .NET Framework 2.0で追加されたクラス DoWorkイベント: 別スレッドで動く ProgressChangedイベント: UIスレッドで動く RunWorkerCompletedイベント: UIスレッドで動く タイマーはDispatcherTimerを使おう。 参考: 「Dispatcher を使用して応答性の高いアプリケーションを構築する」(MSDNマガジン)

その他の話題 枠付きの文字 メッセージソース アドイン IRC Live Messenger 「方法 : 中抜きの文字列を作成する」(MSDN Library) 影付きは簡単: ShadowDepth プロパティ メッセージソース アドイン System.AddIn IRC Live Messenger MSNP,パケットキャプチャ

Enjoy WPF & Presentation まとめ Windows Liveの記事書いてます。 ニコメソッドツールを紹介しました。 MISAOはkatamari.jpから。 透明ウィンドウはいろいろ考えるとWPF & .NETだけでは難しい。 アニメは簡単。 Threadはこれまでと同様な感じ。 Enjoy WPF & Presentation