[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 09/14 16:35 / Filesize : 183 KB / Number-of Response : 673
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3



1 名前:デフォルトの名無しさん [2009/01/09(金) 22:14:36 ]
あたらしいGUI FW、WPFについて語るすれ。
.NET3.5 SP1 もリリースされて盛り上がってまいりますた。

Visual Studio 2008
ttp://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 3.5 Service Pack 1
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja
WPF Toolkit - October 2008 Release
ttp://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=15598

関連スレ
Microsoft Silverlight 2.0 その3
ttp://pc11.2ch.net/test/read.cgi/tech/1227324813/

過去スレ
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
ttp://pc11.2ch.net/test/read.cgi/tech/1211453941/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
ttp://pc11.2ch.net/test/read.cgi/tech/1162950198/

152 名前:デフォルトの名無しさん [2009/02/09(月) 00:45:24 ]
>>149
VerticalAlighnment="Bottom", "HorizontalAlignment="Right"
じゃだめなの?

153 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:00:11 ]
>>152
GridやPanelを組み合わせるのはよくやる
<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="*"/>
    <RowDefinition Height="30"/>
  </Grid.RowDefinitions>
  <Canvas Grid.Row="0"></Canvas>
  <StackPanel Grid.Row="1" Orientation="Horizontal" FlowDirection="RightToLeft">
    <Button Height="23" Name="button1" Width="75">Button1</Button>
    <Button Height="23" Name="button2" Width="75">Button2</Button>
  </StackPanel>
</Grid>


154 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 01:00:58 ]
>>149 だった訂正

155 名前:デフォルトの名無しさん [2009/02/09(月) 07:51:19 ]
ARToolkit+DirectShow.NET+WPFのシンプルなスケルトンを作ってみた。
微妙にスレ違いかもしれないけどARToolkit関連のスレが消失しているのでここに書かせてくれ。

ちょっと前にミクさんが机の上で踊ったりする動画がニコ動で流行ったりして、
ARToolkitってのが流行ったじゃん。でも、このARToolkitって、3D描画はOpenGL、
UIはGLUTっていう融通が利かない仕様になってたり、必要なくてもOpenVRML
ライブラリが必要だったり、C++以外での開発に難があったり、と(俺には)敷居が高かった。

で、brains-N-brawnさんがARToolkitの改良版のARToolkitPlusのPInvoke可能なdllと
そのdllをPInvokeするC#で書いたラッパーコードを作って、さらに3D描画をWPFでやる
サンプルプログラムを
www.mperfect.net/wpfAugReal/
で公開したんだ。

俺はこれは使える!と思ったんだけど、brains-N-brawnさんのコードはARToolkitPlusの
色々な機能を試していて軽量なサンプルとは言い難い物だった。それで、自分でARToolkitPlus+DirectShow.NET+WPFの組み合わせの最低限の内容を持って十分に整理された
スケルトンコードを書いてみた。こいつは特別なライブラリを導入しなくてもVisual C# 2008
のみでビルド可能でしかも3D部分はWPFだし、WPFだからGUIとの連携も容易だしで、
これからARを始めようとする人にはサンプルとして比較的向いているかもしれないと思う。

そんなわけでコードは
sites.google.com/site/augmentedrealitytestingsite/download
ここに置いてある。あと、www.nicovideo.jp/watch/sm6074669にデモ動画を
アップしてみたけど、ミクさんとかの面白いネタがあるわけじゃない。

ニッチ市場向けの内容なのに長文ですまない。せっかくだから誰かが活用してくれるとうれしい。

156 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:31:01 ]
>>150,151,153,154
ありがとうございます
Dock、Dockの階層化でやってみて所望の動作ができることを確認しました

>>152
やってみ

157 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 15:36:09 ]
>>156
152です。
<Window x:Class="WpfApplication1.Window1"
    xmlns="schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
        <Button Width="120" Height="80"
                HorizontalAlignment="Right" VerticalAlignment="Bottom"
                Margin="0,0,10,10">Button</Button>
</Window>
じゃ駄目なの?と思ったんだけど、実際にはほかのコントロールも配置するんだから
実際にこんなコードにはしないね、確かに。

158 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 18:56:36 ]
>>117
なんでTipsみたいなものをもっと大量に用意しないんだろうな。
ネットであさったりあれこれ実験したり、(それこそこういうとこで聞いたり)に
多くの人間がどれだけ無用な時間を取られていることか。


割く人員が少ない(天下のMS様だがそういう金はなぜかない)とでもいうのなら、例えば適当な学生を複数雇って、
よくあるタイプのフリーソフトを指定して(この「ちょっと高機能な関数電卓ソフト」の類似品を1からWPFで作ってみてくれ)
わかりにくかった点はどこで、どう解決したのレポートを書かせて、
適当にリライトしてアップすればいい。
「ただでも習得しようと思っていたところ」だというので、
1本十万円とか1ページ1万円くらいでバイトとして喜んでやる奴幾らでもいるだろう。
節約したいならインドあたりの工科大の学生とかでいいわけで。

「WPFでこれらの見た目も機能もカラフルな数々の便利ソフトがすぐ出来ます。
全ソースと整理されたわかりやすい解説はこちらのページ群をご参照」
使う気になる人間・会社、ぐっと増えるんじゃないんだろうか。
そういうことをほとんどせず>>100

159 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:10:27 ]
金というか資本主義じゃなかったら今だにマンモス狩ってるだろjk

160 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 19:16:25 ]
技術オタク万歳
ゲーム廃人よりたちが悪い。
そこに付け込んだのがWPF
つかわなきゃいいだけ



161 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 20:53:10 ]
今日、渋谷の書店でWPFの書籍を買おうとした
かなり品ぞろえが悪かった(3,4冊くらいしかなかった)
WPF大丈夫なのか?
不安になって本買うのやめた

162 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:10:00 ]
まずは、WPFのなんたるかから勉強しろ。
哲学みたいなもんだ

163 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:30:56 ]
>>158 とか >>160-161 みたいのは、PHPやRubyだけやってればいいと思うよ。いやマジで。

164 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 21:34:08 ]
本買わなかっただけでその仕打ちorz

165 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:09:11 ]
いいんじゃん自分だけわかるみたいなこと言わせておけば
使う人少なければ開発続かないだけだし


166 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:37:20 ]
デスクトップUIの技術自体がもうそれほど重要視されない時代で、なおかつ、
MS系技術がやたらめったら嫌われる傾向の日本では、今後も流行ることないから、
日本語ドキュメントが山ほどあるみんなが使っているものを触らないと落ち着かない人であるとか、
マイナーなものに手を付けることを、今後(その技術のエッセンスがどっかで生き残るだけじゃなくて)
その製品自体が普及するか否かだけで不安になる人は、来ないほうがいいよと言ってあげただけ。

167 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:44:29 ]
サンプル山ほどあるだろ

168 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:49:57 ]
ほんとその通り。
UI技術に投資するなんて無駄なだけ。
もっとやるべきことがある

169 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:24:52 ]
勉強すればいいと思ってる馬鹿は大抵学歴が高い傾向にある
本質がわからない。辿りつけない層であり、GDPを上げるために仕込まれた人口比率の最も多い層でもある
プログラミングすらしないで目的を達成させることのほうが大事
お前の言っているやるべきこともたぶん糞


170 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:36:27 ]
>プログラミングすらしないで目的を達成させることのほうが大事
そりゃそうだが、プログラミングする以上はちゃんと勉強しろよ



171 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:46:35 ]
軍事技術が優先だったけど今はそいつらが集まって自動でアプリケーションを作りだす人工知能の開発に本気になってるから
それまで待ってろ。もう50年もすれば人がいらなくなる

172 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:51:36 ]
>>171
その頃ロシアでは ウォッカの生成方法を考えるAIの研究をしていた

173 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 00:41:09 ]
>>171
未来の二つの顔だな
あれの中ではナイスなAIのおかげで皆働かなくてよくなったとなってたが、もし実現しタラ超格差になるだけのような気がする。

174 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:08:05 ]
俺はWPFに賭ける
今すごい使い方を編み出せばMSからMVPをもらえるかも知れん
やってやるぜ

175 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:18:21 ]
>>174
釣り針垂らしてスレチの阿呆に餌を与えようとするなw

176 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 08:14:56 ]
>>155です。
せっかくなのでARToolkit+DShowNET+WPFでミクさんネタもやってみました。
まあ、このネタはもうやりつくされた感がありますが。ミクさんxamlにしたよー。疲れた。
 
www.nicovideo.jp/watch/sm6099189
sites.google.com/site/augmentedrealitytestingsite/download (コード)
 
UIとかあんまり関係ないプログラムになっているけれど、WPFってUIのフレームワーク
なのにビットマップエフェクトと3Dを宣伝文句にする姑息な事してきたわけだから、
3D描画に酷使してやれば本望だと。それに前にも書いたけど本家ARToolkitがGLUT
べったりなのに対してWPFを使っているのでこのコードをスケルトンとして作ったプログラム
ではバインディングなどのWPFの恩恵を受け易い。・・・はず。

177 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:40:41 ]
CAG for WPF 日本語版出てたのね。
ttp://msdn.microsoft.com/ja-jp/library/dd365013.aspx



178 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:54:52 ]
WriteableBitmapとBitmapなにがちがうですか?

179 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:04:35 ]
過疎ってる・・・

OpacitySliderはスライダーで、
 
RotateTransform rotate = new RotateTransform(0);
OpacitySlider.LayoutTransform = rotate;
 
DoubleAnimationUsingKeyFrames rotationAnimation
         = new System.Windows.Media.Animation.DoubleAnimationUsingKeyFrames();
rotationAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(0, TimeSpan.Zero));
rotationAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(360, TimeSpan.FromSeconds(5)));
 
Storyboard rotationStoryBoard = new Storyboard();
rotationStoryBoard.RepeatBehavior = RepeatBehavior.Forever;
rotationStoryBoard.Children.Add(rotationAnimation);
Storyboard.SetTarget(rotationAnimation, OpacitySlider);
Storyboard.SetTargetProperty(rotationAnimation,
       new PropertyPath("(FrameworkElement.LayoutTransform).(RotateTransform.Angle)"));
rotationStoryBoard.Begin();
 
でスライダーは回転するんだけど、
 
Storyboard.SetTarget(rotationAnimation, rotate);
Storyboard.SetTargetProperty(rotationAnimation, new PropertyPath("Angle"));
 
って変更すると回転しなくなる。何でだか分かる人いる?ちなみにスライダーを回転させたいん
じゃなくて、別の問題を単純化したらこうなったんだけど。

180 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 04:21:50 ]
>>179にレスが付かなくて(179は俺ね)連投みたいになってもうしわけないんだが、
Storyboardを使ってミクさんをアニメーションさせたので、またコードと動画を貼っておく。
 
sites.google.com/site/augmentedrealitytestingsite/download
www.nicovideo.jp/watch/sm6116619
www.nicovideo.jp/watch/sm6117872
 
WPFって一応今の流行だと思うんだけど、何でこんなに過疎ってるの?



181 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 04:54:52 ]
必ずしも必要なものが出現するとは限らない
社員を遊ばせておくぐらいなら何かを作らせた方がいいという時だってある
Vista、C#、WPFなんかがそれに当てはまる。

182 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 07:14:01 ]
>180
これって、描画領域になんか重ねたりとかも出来るの?

183 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 07:31:00 ]
>>182
Canvasの上にViewport3Dという構成だからCanvasに重ね描きするかその上に別のコンテナを乗っけてViewport3DとZオーダーを調節すれば良いんじゃない?ソースあるから適当にいじってみて。

184 名前:デフォルトの名無しさん [2009/02/12(木) 11:19:15 ]
visual studioで app.xamlのstartupUriに指定されたウィンドウのxamlファイルの
ファイル名を変更しても、リファクタが効かず、毎回手で変更しないといけない
のですが、これってバグですか?
ファイル名ではなくクラス名としてのwindow1の名を変更したときにはちゃんと
xamlにも変更を反映してくれるので、技術的な問題と言うよりも、忘れられちゃった
としか思えないんですが。

みなさん、デフォルトの"window1.xaml"のまま使っているんでしょうか?

185 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:27:29 ]
>184
C#の仕様上はファイル名と中のクラスには何の関係もないんだから、
中に記述されていうクラスのクラス名を変えないとリファクタリングは
効かないに決まっている。ただ、その場合もxamlの記述までは置換され
なかったような記憶があるけれど。

186 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 11:28:30 ]
185です。
>>184
あ、その場合にはうまく行くのね。

187 名前:デフォルトの名無しさん [2009/02/12(木) 11:52:23 ]
>>186

windows formのときは メインウィンドウのcsファイルの名前を変更すると
formクラスの名前も、formクラスの参照先も、designer.cs やresxファイル
の名前も全部自動で変えてくれたので、Form1.csをMainForm.csとか
自分のわかりやすい名前に変えるだけで手間いらずだったんですけどね…。

理想はwinformの時みたいに、Window1.csをMainWindow.csに変更したら
window1クラスの名前およびその参照先を全部MainWindowクラスにして、
app.xamlのstartupUriまで一気に変えてくれることなんですけどね。
今は ファイル名の変更、クラス名の変更、startupUriの変更と3ステップ必要
なのがにくい…。

188 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 13:13:04 ]
SuspendLayout, ResumeLayout, Invoke, Refresh, Update, Invalidatedと等価なのは何でしょう?

189 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:08:23 ]
すいません、「WPF」での「Dim IconB As Icon = Icon.FromHandle(Icon_hWnd)」はどこにあたるのでしょうか?
WPFでIconは全てImageに変わったというのは判ったのですが、アイコンハンドルから画像に変換することができませんでした。
もしかして、別の方法でハンドルからアイコン画像を変換する方法があったら教えてください。
よろしくお願いしますm(_ _)m

190 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:33:13 ]
>>187
186です。
Windows formsだとそうなんだ。知らなかった・・・。
IDEがスタイルを強要するみたいで個人的には嫌だけど、スタイルが受け入れられるなら便利では
あるね。それと多分JAVA出身の人なんかはファイル名と中身が関連付かないと気になるんだろうね。

そう言えば、System.Windows.Forms.Formを含んでいるcsファイルを開くと必ずデザイナが
開いて、csファイル毎にデザイナで開くかエディタで開くか設定できないのも個人的には嫌だった
なあ。しかも、Formを継承したクラスが一番初めにないとエラーが出たり。Windows Formsでは
C#とクラスライブラリの仕様だけでなくIDEの支援もセットでUIのフレームワークを形成して
いたんだよね。昔のVBと同じで。それがWPFで解決されてUIはC#から独立した言語/デザイナ
で定義するようになったのだから今さら言語仕様にない事をIDEが勝手な判断で手出しするのは
控えてくれた方が個人的にはうれしいなあ。x:Classなんて一属性に過ぎないのだからxamlの
ファイル名と勝手に関連付けられたりしない方がすっきりする。まあ個人的な見解ですが。



191 名前:>>189 mailto:sage [2009/02/12(木) 16:49:52 ]
自己解決しました。

192 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:53:15 ]
>>191
俺は知らない事なので、せっかくだから解決内容を書いてもらえるとうれしい。

193 名前:>>189 mailto:sage [2009/02/12(木) 17:11:01 ]
もっとスマートならいいのですが、本当に自己が満足しただけの解決なんです orz
WPFでフォームをホストしてから、その中で「FromHandle」を使っただけという残念な方法です。
恐らくWPF内でForm系列のものを利用できるような方法があると思うのですがMSDNにも載っていないようなので諦めました(爆

194 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 17:14:34 ]
ttp://msdn.microsoft.com/ja-jp/library/system.windows.interop.imaging.createbitmapsourcefromhicon.aspx

195 名前:>>189 mailto:sage [2009/02/12(木) 17:54:54 ]
>>194さんありがとうございます!
何とか無事にアイコン取得できそうです。
Win32との相互というのは覚えとくべきですね

196 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:33:09 ]
SendToBackってどうすればいいですか?

197 名前:デフォルトの名無しさん [2009/02/13(金) 05:52:26 ]
最近、WPFが遂に流行ってきた気がする

198 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 06:29:43 ]
ない

199 名前:デフォルトの名無しさん [2009/02/13(金) 21:04:43 ]
また、プログラミング言語ごとの募集要項での平均年収について、2007年から2008年にかけての上昇
額ランキングを見ると、C#が前年比66万6000円増と大幅に上昇した。2008年における平均年収ランキン
グでも1位となっている。

ttp://headlines.yahoo.co.jp/hl?a=20090213-00000000-zdn_ait-sci

ついに来たな、時代が俺に追いついた

200 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 21:15:54 ]
まじかああああああああああああ
ついにきたあああああああああああああ



201 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 22:49:06 ]
>>199
ちょっと前と比べてかなり速くなったしドライバとかでもない限り今わざわざCやC++でやる必要もなくなってきたしな
ASP.NETやSilverlightもあるしMonoを使えばMacでもLinuxでもUnixでも動くしバックにマイクロソフトがいる
何が言いたいのかって言うと今までが安すぎたんじゃねってこと


ついでにこれ貼っておきますね
japan.zdnet.com/news/internet/story/0,2000056185,20388173,00.htm

202 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:05:22 ]
Miguel、GNOMEやってたときはかなり偏屈なあんちゃんだったように思うが
なんかもう完全にMSの飼い犬になってるな。そのうちNovellやめて
MSに入社するんじゃないか?

203 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 23:25:04 ]
>>202
年を重ねるうちに丸くなったかお金のおいしさをしったかのどっちかだろうな

204 名前:デフォルトの名無しさん [2009/02/14(土) 02:03:55 ]
クラスライブラリ(dll)からWPFのwindowを作成して表示するには
どうしたらいいんでしょうか?

winformなら「新しい項目の追加」でformを追加しておいてnewしてshowすれば
表示できましたが、WPFだとそもそもユーザーコントロールしか追加項目
に現れてきませんが、そういうことはそもそもできないんでしょうか?。

205 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 07:59:16 ]
WPF試して見ようと思ったんですが、
3.5のSP1インストールできないんだがどうすればいいんですか・・・?

[02/14/09,05:10:52] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for component Microsoft .NET Framework 2.0a. MSI returned error code 1603
[02/14/09,05:11:18] WapUI: [2] DepCheck indicates Microsoft .NET Framework 2.0a is not installed.
[02/14/09,05:36:58] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for component Microsoft .NET Framework 2.0a. MSI returned error code 1603
[02/14/09,05:37:28] WapUI: [2] DepCheck indicates Microsoft .NET Framework 2.0a is not installed.
[02/14/09,07:56:44] Microsoft .NET Framework 3.5 'package': [2] Error: Installation failed for component Microsoft .NET Framework 3.5 'package'. MSI returned error code 1603
[02/14/09,07:56:54] WapUI: [2] DepCheck indicates Microsoft .NET Framework 3.5 'package' is not installed.

よろしくお願い致します。

206 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 11:49:00 ]
エラー文抜き出して検索すれば早いだろうに。
detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1115761341
それにスレチな。

207 名前:デフォルトの名無しさん [2009/02/14(土) 13:05:02 ]
>>204

自己解決しました。
いったんUserControlを新規項目として追加して
UserControlをWindowにxaml側、cs側両方で書き換えたら
普通に new →show()で表示することができました。

でもなんでIDEから簡単にwindow追加できないんだろう。

208 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 13:22:51 ]
>>206
それはもうやりました・・

209 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 06:33:21 ]
ARToolkit+WPFで今度はミクを溢れ出させてみました(というか簡単な物理シミュレーション)。
www.nicovideo.jp/watch/sm6155021
sites.google.com/site/augmentedrealitytestingsite/download   (ソース:ARWithWPFMikuEmitted.zip)

WPFの3Dにもようやく慣れてきた・・・

210 名前:デフォルトの名無しさん [2009/02/15(日) 14:47:42 ]
ListBoxの選択色を変えるにはどうしたらいい?



211 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 15:59:42 ]
msdn.microsoft.com/ja-jp/library/system.windows.controls.listbox.itemcontainerstyle(VS.95).aspx
このプロパティに、TemplateプロパティにListboxItemをターゲットとするコントロールテンプレートを割り当てるSetterを含むスタイルを与えてやればよい、と思う。そのコントロールテンプレートの中でTriggerを設定するのね。

ListViewの場合でしかやった事がないので外してるかもしれないけど。

212 名前:211 mailto:sage [2009/02/15(日) 16:11:46 ]
じゃなかった。
確か、ItemContainerStyleプロパティに割り当てるスタイル中で、<Style.Triggers Property="IsSelected" ...みたいにやれば良いという単純な話だった気がする。

何かの理由でデフォルトのコントロールスタイル中の同様のトリガーが優先されてしまうために
コントロールテンプレートまで書き換えた事があったんだけど、多分普通は↑で済むと思う。

213 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:18:26 ]
>>211,212
試してみる。ありがとー

214 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 16:18:31 ]
もっと簡単にできる
wpf listview selection colorでぐぐったらすぐ出てくるよ

215 名前:211 mailto:sage [2009/02/15(日) 16:31:34 ]
試してみたけど、やっぱりTemplateプロパティを書き換えるのも必要だね。
<ListBox>
    <ListBoxItem>Apple</ListBoxItem>
    <ListBoxItem>Orange</ListBoxItem>
    <ListBoxItem>Grape</ListBoxItem>
    <ListBox.ItemContainerStyle>
        <Style TargetType="{x:Type ListBoxItem}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListBoxItem}">


216 名前:211 mailto:sage [2009/02/15(日) 16:36:10 ]
                        <Border Name="Bd"
                             Background="{TemplateBinding Background}"
                             BorderBrush="{TemplateBinding BorderBrush}"
                             BorderThickness="{TemplateBinding BorderThickness}"
                             Padding="{TemplateBinding Padding}"
                             SnapsToDevicePixels="true">
                            <ContentPresenter
                                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>

217 名前:211 mailto:sage [2009/02/15(日) 16:37:15 ]
>>214
あれ、俺道化?まあとりあえず最後まで書くので必要なら使って。
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="true">
                    <Setter Property="Background" Value="LimeGreen" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>
コントロールテンプレートはPresentationFramework.Classic.dllからReflectorのBAML Viewewプラグインを使って抜き出して、トリガー関係をごっそり削除したもの。関係ないところまで消しちゃっている(IsEnabledのトリガーとか)ので、実際にはもう少し色々試してみて。


218 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 00:55:57 ]
リアルタイムで受信したデータに応じて色々表示変えたいんだが、データに応じてUIElementを色々入れ替えたりすると言うことでよいのかな?Rectangleの色だけを変えるとかってできましたっけ?

219 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 12:51:56 ]
Vistaで動かすともっさり、XPだとまあまあなアプリ
Windows7だとどうなりますか?快適に動くでしょうか?

220 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 13:03:24 ]
一般論として最適化はされているみたいだね。

俺は、古いPCにWindows 7を入れたので細かいパフォーマンスの比較はできないけれど、
WPFアプリの起動は確実に速くなっている。



221 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 18:17:05 ]
>>214って結局どんな方法?
ググって見たけど、デフォルトのテンプレートが使っているリソースのキー名で
ブラシをListBoxのスコープのリソースで定義する方法しか出なかった。

チートっぽいけどこれ?

222 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 19:10:53 ]
>>218
Rectangle.Fill変更すれば変わるっしょ

223 名前:デフォルトの名無しさん mailto:sage [2009/02/16(月) 23:30:51 ]
>>222
グラフのようなもの変えるんだとLineElementをつくり変えて入れ替えないと駄目なのかね?
とりあえずうごくんだがなんか無駄な子としてるような気が・・・

224 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 07:35:15 ]
折れ線変化させたりする程度なら、
Polyline置いてdependency property使えば瞬殺だと思うんだが

225 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:01:40 ]
WPFでアンチエイリアシングを無効にする方法
ttp://blogs.msdn.com/hiroyuk/archive/2009/02/16/9425120.aspx
>これを無効にするには、RenderOptions.EdgeMode="Aliased" を使います。

これってフォントには応用できない?単純にテキストボックスに対してこれやってもなんも変わんなかった

226 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:10:32 ]
msdn.microsoft.com/ja-jp/library/aa970908.aspx#guidelines
リンク先の直前に
>Windows Presentation Foundation (WPF) は常にアンチエイリアスされたテキストを
>生成します。生成されたテキストが静的な場合は、ピクセル スナップされます。これに
>より、グリフがピクセルグリッド上に直接配置されて、アンチエイリアスされたテキス
>トの外観が鮮明になり、テキストがよりクリアになります。ただし、Windows Presen
>tation Foundation (WPF) が、スクロール、スケーリング、アニメーション化された変
>換など、アニメーション的な動きを検出すると、そのような動きが完了するまでピクセ
>ルスナップはオフになります。アニメーションやスクロールの動きが完了すると、ピク
>セル スナップがゆっくりと復活します。
だそうなので、アンチエイリアスはするけれど、ぼやけないように気は使ってくれるみたい。
だから気にしないで良いんじゃない?

227 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:37:37 ]
気になっちゃうんだもん・・・ WindowsFormsHost 使えばいいんだけどさ

228 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:42:45 ]
俺はむしろ、ClearType万歳、アンチエイリアス万歳!だけどなあ。

229 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:49:20 ]
さすがにビットマップフォント使えばアンチエイリアシングされないと思わない?

230 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 18:55:04 ]
Bitmapに描画すればアンチエイリアスはかかるかも知れないけど
ClearTypeにならないんじゃね?
RGBディスプレイで作った画像がBGRディスプレイで見ると悲惨になるような設計されてないはずだし。



231 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:19:01 ]
blogs.msdn.com/adam_nathan/archive/2005/10/24/using-com-interop-to-create-a-wpf-visualization-for-windows-media-player.aspx
ここからダウンロードできるwpfwmp.zipが壊れているんだけど、誰か壊れていないやつを
ダウンロードしていて、今も持っているって人いない?はじめから壊れていたらどうしようも
ないし、持っている人が偶々このスレ見ているなんてそもそも可能性がすげー少ない話なんだが。

Adam Nahanさんにも怪しい英語でメールしたけど、返事が来ない・・・

C#+WPFでWMPの視覚エフェクトが作れるってすごく面白そうなんだけど、COMの知識がないから
COM InterOpもわけわかめなんだよね。一週間待ってwpfwmp.zipが手に入らなかったら勉強
してみる。

それまでに、
>Make your class implement the IWMPEffects COM interface.
>I manually defined this interface in C# based on the IDL definition in the Media Player SDK.
をわざわざやってくれる奇特な人も募集中。Windows Media Player 10 SDKは
msdn.microsoft.com/en-us/windowsmedia/bb190309.aspx
から手に入るみたい。

232 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 20:29:19 ]
idlがあるならmidl.exeとtlbimp.exeでdll作れよ

233 名前:231 mailto:sage [2009/02/17(火) 21:11:56 ]
>232
ちょっと調べて知恵をつけて
midl /newtlb effects.idl
してみたんだけど、effects_i.c, effects_p.c, dlldata.cしかできない・・・

これ以上は初心者板向けになりそうだから、一週間たってwpfwmp.zipが手に入っていなかったら
まじめにCOMを勉強するわ。

234 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:44:31 ]
>>224
殺しちゃうのかよw

235 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 21:46:25 ]
ScrollViewer のインスタンスの垂直スクロールバーが
一番下まで来たかどうかを調べる方法って、どうすればいいんでしたっけ?

やりたいことは
ScrollViewer に対して、コントロール内で PageDown() メソッドを
呼んだあと、もうこれ以上ページを下におろすことができないかどうかを知りたい。
でもなんだかうまくいきません。
ぐぐっても出てこないし、歯がゆい。
もしご存知でしたら教えてください。。。。。。


236 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:51:36 ]
WPF 勉強中なんですが、
Windows に Image を張って、
そこに、jpg 画像ファイルを読み込みました。

この画像ファイルに、文字列を書き込みをしたいんですが、
どのようにしたらよいでしょうか?

Image.Source から、DrawingContext を生成してなるのかな
と思いますが、やりかたがわかりませんでした。


237 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:54:21 ]
画像にじゃなくて画像ファイルに?

238 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 22:56:16 ]
画像に、です
すいません

239 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:02:28 ]
>>235
HorizontalOffset/VerticalOffsetとScrollableWidth/ScrollableHeight

240 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:02:51 ]
>>236
なんでもかんでもGraphcsで描くWinFormsとは根本的に考え方が違うんだよな
特殊な場合を除いて基本的にDrawingContextは使わない
DrawingVisual作ってImageDrawingやGlyphRunDrawingを追加して
RenderTargetBitmap.Renderが正当かな



241 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:09:31 ]
Canvas使うとかAdorner使うとか色々あるぜ

242 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:15:13 ]
いずれにしても元のImageSourceに直接描くのは無理
>>236じゃないけど,最終的にRenderTargetBitmap以外の方法はあるのか知りたい

243 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:24:25 ]
WPFのコントロールテンプレートで迷ってしまいました、どうもラジオボックスの連動がうまく行きません。

<Window.Resources>
<Style TargetType="RadioButton" x:Key="Test_Style">
<Setter Property="RadioButton.FontSize" Value="20"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RadioButton">
<StackPanel>
<RadioButton x:Name="tet" Content="!" />
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="tet" Property="IsChecked" Value="True" />
</Trigger>
<Trigger Property="IsChecked" Value="False">
<Setter TargetName="tet" Property="IsChecked" Value="False" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<RadioButton x:Name="RadioButton_1" Style="{StaticResource Test_Style}" Content="RadioButton__1" IsChecked="True" />
<RadioButton x:Name="RadioButton_2" Content="RadioButton__2" IsChecked="False" />
</StackPanel>...

244 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:26:56 ]
>>242
ImageDrawingは?
何をもって最終とするのか知らんが

245 名前:242 mailto:sage [2009/02/17(火) 23:30:47 ]
元の画像に文字を合成したImageSourceを得たいんでしょ
その完成したImageSourceを作る段階

246 名前:>>189 mailto:sage [2009/02/17(火) 23:30:52 ]
やりたいことは、普通にフォームにラジオボックスに2つ張った状態を目標にしています。
通常ならどちらか一方がチェックされれば、もう片方はチェックが外れるようにしたいです。

この方法では一度ならラジオボックスのチェックがどちらか一方に付くようになるのですが、
もう一度チェックしなおすと両方がチェックされた状態になってしまいます。
プロパティの値も実際に見てみたのですが、一度だけ成功していますが、それ以降は値が変化していないということになりました。

Private Sub Window1_Loaded(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles Me.Loaded
MsgBox(Me.RadioButton_1.IsChecked & vbCrLf & Me.RadioButton_2.IsChecked)
End Sub
true:False

Private Sub RadioButton_2_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles RadioButton_2.Click
MsgBox(Me.RadioButton_1.IsChecked & vbCrLf & Me.RadioButton_2.IsChecked)
End Sub
False:True

Private Sub RadioButton_1_Click(ByVal sender As Object, ByVal e As System.Windows.RoutedEventArgs) Handles RadioButton_1.Click
MsgBox(Me.RadioButton_1.IsChecked & vbCrLf & Me.RadioButton_2.IsEnabled)
End Sub
True:False
(ここで見た目は両方ともチェックされた状態になってしまうが、値は希望通り)

247 名前:デフォルトの名無しさん mailto:sage [2009/02/17(火) 23:32:07 ]
>>246
コレハンミスです。

よろしくお願いします m(_ _)m

248 名前:236 mailto:sage [2009/02/18(水) 00:01:49 ]
RenderTargetBitmap でいけそうです。
ありがとうございました。

>>245
そのとおりです。

238は俺じゃないんだが・・・。
書き込んだのを忘れてるんだろうか。

249 名前:244 mailto:sage [2009/02/18(水) 00:08:35 ]
DrawingImageだった 名前が紛らわしいよまったく

250 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:23:35 ]
DrawingImageは保存できなくね?



251 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:25:49 ]
>>248
その年でもう健忘症か?
ほっとくと中川みたいになるぞ
病院いってこい

252 名前:デフォルトの名無しさん mailto:sage [2009/02/18(水) 00:37:56 ]
保存は条件じゃないっしょ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<183KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef