MISAO with WPF JZ5 2009/2/7.

Slides:



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

独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
特別支援教育で使える PowerPoint の活用法 研修 最低限必要なスキルはこれでバッチリ!! ICT 活用支援員 高松 崇.
VBA の基礎 (Visual Basic for Application) 国立教育政策研究所 坂谷内 勝.
Web アプリをユーザー毎に カスタマイズ可能にする AOP フレームワーク
Visual Studio 2010 の新機能 Coded UI Test
WPF で作る!! 仮想化支援技術確認ツール CLR/H ひよひよ Crystal Dew World
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
第11回JavaScriptゼミ セクション8-2 発表者 直江 宗紀.
プレゼンテーションソフトを活用しよう PowerPoint 2007の使いかた.
プレゼンツールとしての Impressと、PowerPoint比較
表計算ソフトを使って 万年カレンダーを作ろう!
MajorなMeasure 囚人.
Win32APIとMFC H107102 古田雅基 H107048 佐藤一樹 H107126 山下洋平.
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟.
第5回 iPhoneアプリ開発勉強会 Objective-C 「継承とクラス」
C#によるWindowsFormApplication入門
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
アルゴリズムとプログラミング (Algorithms and Programming)
VBA H106077 寺沢友宏.
MISAO with WPF JZ5 2008/6/7.
報告 (2006/9/6) 高橋 慧.
第四回 VB講座 画像とタイマー.
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
MISAO with WPF JZ5 2009/2/7.
RAD Studio 14/09/27 TEffectを使った綺麗なForm
MSBuild 色々出来るよ 2011/04/02 お だ.
アプリケーション共有機能 〈参考〉 (図1) (図2)
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
最終課題 Webアプリケーション 〜ページのしおり機能〜
Live Framework 入門 その2 JZ5(松江) 2009/8/22.
プログラミング演習3 第2回 GUIの復習.
ソフトウェア工学 知能情報学部 新田直也.
Oracle XEを使ってみよう 初音玲.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗黙的に型付けされる構造体の Java言語への導入
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
WPF、MVVMパターン構成.
わんくま同盟・techbank.jp 夏椰 Insight Technology, Inc. 今川 美保
VBA ( Visual BASIC for Application) を使えるようにする方法
WPFの初歩の初歩 うつせみ(虚蝉).
WPFの初歩の初歩 うつせみ(虚蝉).
仕事: SystemVerilogを使いたい
プログラミング演習3 第2回 GUIの復習.
11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS.
0.2 プロジェクトの準備 DXライブラリを使うための準備.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
MISAO with WPF JZ5 2008/6/7.
Oracle XEを使ってみよう 初音玲.
Twitterクライアントに学ぶASP.NETアプリ
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
表計算ソフトを使って 万年カレンダーを作ろう!
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
オブジェクト指向プログラミング クラス 継承
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
WPF(.NET3.5)   vs Silverlight 2.0 Beta1 中 博俊@わんくま同盟.
情報基礎演習I(プログラミング) 第8回 6月8日 水曜5限 江草由佳
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
回転する歯車 プレゼンテーション プレゼンテーションのスライドショーを開始 (F5 キー) すると、アニメーションが再生されます。
プロジェクト演習Ⅳ・Ⅵ インタラクティブゲーム制作
ソフトウェア工学 知能情報学部 新田直也.
System.AddInを利用したアプリケーション拡張 - アドインの開発 -
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
How To WPF アプリケーション Part3 By 中博俊.
Presentation transcript:

MISAO with WPF JZ5 2009/2/7

自己紹介 JZ5(松江祐輔) プログラマーですか? @jz5 Twitter katamari.jp 違います。Verilog書いてます。 @jz5 Twitter katamari.jp katamari.wankuma.com

Agenda ニコニコメソッド&Katamari.MISAO WPFプログラミング

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

History of ニコニコメソッドツール LingTickr Yahoo! Widgets, Linger AIR, テキストファイル 5月 9月 2008 2007 WPF, telnet AIR, RSS AIR, IRC 2月 6月 3月 ? MISAO3 1st Rlease MISAO JZ5調べby Google 不明 PHP

MISAO after first release 121ショック 9月 6月 12月 あひるさん+ 3.2 alpha 妄想期間 2009 JZ5の本気 あひるの本気 今ここ 1月 2月

MISAOの外面的な特徴 メッセージソース (たぶん一番)ニコっぽい わんくま勉強会 重い Ustream(実質これだけ) Twitter Live Messenger (たぶん一番)ニコっぽい わんくま勉強会 重い

実演 MISAOの内面的な特徴 WPF 隠された拡張性 System.AddIn なんでもアドイン キャラクター志向モデリングではない Etc. 実演

Why WPF? アニメーションを実装したくなかった 新しいWPF+VB.NET PowerPointのアドイン 無理!? WPF

Programming Menu アニメーション 透明ウィンドウ アプリケーション(おまけ)

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

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

WPFアプリケーションを作成してここだけ変更 ウィンドウ作成(10行) <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"> <Canvas Name="KumaCanvas"> <Label Content="わんくま" Name="KumaLabel" Canvas.Left="300" Canvas.Top="100" /> </Canvas> </Window> WPFアプリケーションを作成してここだけ変更

実行 アニメーション(10行) Imports System.Windows.Media.Animation Class Window1 Private Sub Window1_Loaded() Handles Me.Loaded Dim a = New DoubleAnimation With { _ .From = Canvas.GetLeft(KumaLabel), _ .To = -KumaLabel.ActualWidth, _ .Duration = New Duration(TimeSpan.FromSeconds(10))} KumaLabel.BeginAnimation(Canvas.LeftProperty, a) End Sub End Class 実行 コード ビハインド わーい

動的にラベル生成(20行ぐらい) Private Timer As New System.Windows.Threading.DispatcherTimer Private Sub Window1_Loaded() Handles Me.Loaded AddHandler Timer.Tick, AddressOf Timer_Tick Timer.Interval = New TimeSpan(0, 0, 1) Timer.Start() End Sub Private Sub Timer_Tick() Dim l = New Label l.Content = "わんくま" KumaCanvas.Children.Add(l) ' Canvas追加 KumaCanvas.UpdateLayout() Canvas.SetLeft(l, Me.Width) ' 座標設定 Canvas.SetTop(l, New Random().Next(Me.Height)) Dim a = New DoubleAnimation With { _ .From = Canvas.GetLeft(l), _ .To = -l.ActualWidth, _ .Duration = New Duration(TimeSpan.FromSeconds(10))} l.BeginAnimation(Canvas.LeftProperty, a) End Sub わらわら 破棄…

簡単 必要なウィンドウ 透明なウィンドウ(枠なし) タスクバー非表示 常に最前面 非アクティブ クリック透過 Alt+Tab切り替えで非表示 Win32

もろもろプロパティ Background="Transparent" AllowsTransparency="True" <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" Background="Transparent" AllowsTransparency="True" WindowStyle="None" ShowInTaskbar="False" Topmost="True" ShowActivated="False" > セットで 3.5 SP1

& !? すこし脱線 Private Sub Image_MouseLeftButtonDown() DragMove() End Sub <Window x:Class="Window1" (もろもろプロパティ) > <Grid> <Image Source="http://www.wankuma.com/images/logo3.png" MouseLeftButtonDown="Image_MouseLeftButtonDown"/> </Grid> </Window> & Private Sub Image_MouseLeftButtonDown() DragMove() End Sub !?

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

WindowInteropHelper(Me). Handle Win32 APIを使うには ウィンドウハンドルの取得 これまで(Windows.Forms): Me.Handle WPFアプリでの方法: Dim handle = New System.Windows.Interop. WindowInteropHelper(Me). Handle コンストラクタ内 では取得できない とりあえずWindow1_Loaded内に入れよう

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スタイルは付いてる。

タスク切り替え時 非表示にする SetWindowLongを使って 拡張ウィンドウスタイルから (WS_EX_APPWINDOWを削除) WS_EX_TOOLWINDOWを追加

参考: 非アクティブ ' 非アクティブ(参考) SetWindowPos(handle, _ New IntPtr(HWND_TOPMOST), _ 0, 0, 0, 0, _ SWP_NOMOVE Or SWP_NOSIZE Or _ SWP_NOACTIVATE)

Enjoy WPF & Presentation まとめ ニコメソッドツール&MISAO アニメ簡単 凝ったことをしだすとWin32… Enjoy WPF & Presentation