[表示 : 全て 最新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/

604 名前:デフォルトの名無しさん mailto:sage [2009/04/03(金) 23:37:51 ]
UserControl を作成して、XAML で定義した StaticResource を
コードビハインドで使おうと思います。

> StaticResourceExtension ex = new StaticResourceExtension();
> ex.ResourceKey = "HatchBrush";
> Brush brush =(Brush)ex.ProvideValue( XXX );

↑のようなコードで使えそうだってことはググった結果わかったのですが、
XXX になにを入れれば良いのでしょうか?



605 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:09:28 ]
貴様はMSDNのライブラリすら調べられないのか、このウンコが

msdn.microsoft.com/ja-jp/library/system.windows.staticresourceextension.providevalue.aspx

で、その引数のインターフェイスが
msdn.microsoft.com/ja-jp/library/system.iserviceprovider.aspx

そのインターフェイスの唯一のメンバーがGetService メソッド

サンプルコード見てるならググる前にライブラリ調べろよ
お前みたいなウンコがいらんblog記事書くから
こういう分野でのgoogle検索が面倒になるんだよ・・・

もう終電はないし仕事場で俺一人、飲みながら2ch
暴言も反省はしてない。北朝鮮のミサイルが待ち遠しい。

606 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:17:57 ]
俺んちに落ちてこないかなー

607 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 00:35:45 ]
そもそも、WPFうんぬん以前に.NET Frameworkでコード書ける人間が
俺一人ってどういうことだよ、この職場wwww

なんかもう、OOPについていけないSEがその辺にごろごろいる
コーディング?VBなら一通りできますよ?みたいな。もう死ねよ

608 名前:604 mailto:sage [2009/04/04(土) 00:49:05 ]
>>605
IServiceProvider の使い方がわからないわけでなく、
UserControl を継承したクラスのなかで、どうやって
IServiceProvider を得るのかがわからないんです。


609 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:18:15 ]
>>607
お前みたいなのでも雇ってるんだから
ずいぶん寛大な会社だと思うんだが。

610 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:24:40 ]
>>608
多態性(polymorphism)というOOPの概念を知ってるか?
というか、インターフェイスの使い方がよくわかってないんだろう・・・
俺の職場にゴロゴロいるやつらと同じだwww

C++では多重継承は変態コーディングで害悪だ、みたいな空気があったけど
C#では標準ライブラリからして、インターフェイスを使った多重継承が常識になってるんだよ

611 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 01:43:26 ]
>>604
間違ってたら、ごめんね。単純に XAML で定義した StaticResource を使いたいってだけなら、
FindResource メソッドが UserControl の基底クラスで定義されているので、それを使えば良いよ。
msdn.microsoft.com/ja-jp/library/system.windows.frameworkcontentelement.findresource.aspx

> Brush brush = (Brush)FindResource( "Key" );

StaticResourceExtension は XAML 拡張マークアップ( Background={StaticResource ...} みたいな書き方 ) を
定義しているだけのクラスなので、通常、コードから使う必要はないです。

612 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 07:10:55 ]
>C++では多重継承は変態コーディングで害悪だ、みたいな空気があったけど

アホが使うとな。



613 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 07:48:51 ]
もうだめかもわからんね

614 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 08:49:24 ]
>>610
文句言うだけで回答出来ねぇw ワロス

615 名前:デフォルトの名無しさん mailto:sage [2009/04/04(土) 17:29:46 ]
>>610
インターフェースと多重継承ごっちゃにすんなよ。
区別がついてない時点でおまえもその職場の奴らと同類だ。

616 名前:604 mailto:sage [2009/04/04(土) 18:08:22 ]
>>611
教えていただいた方法で無事リソースを得る
ことができました。
ありがとうございました。

617 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 07:50:59 ]
小賢しい暴言書きちらすような奴は
>>610
結局手前が一番何もわかっていない糞馬鹿だということの典型モデルですな

要素に対するシステム特有の扱いへの質問にすぎんものに
>多態性(polymorphism)というOOPの概念を知ってるか?
もう痛さ百乗

618 名前:デフォルトの名無しさん [2009/04/06(月) 12:30:35 ]
>>610
最後2行はネタであると願っております。

619 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 12:48:51 ]
>>610は間違いなのか?

結局何が答えなのか・・・

620 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:06:06 ]
>>610
の最後に行は間違いなくネタ

621 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:10:23 ]
>>610はOOP概念に拘ってるようですが、
プログラミングの基本は抽象化です。別にOOPに限った話ではありません。
インタフェースは使い方はそれほど重要ではなく(簡単なので)、インタフェース
という実現方法が問題解決の副次的要素です。
多重継承問題は、抽象化プログラミングと深く関わっています。

このまま解説を続けても良いですけど、WPFスレなので
スレ汚しになるので控えさせてもらいます。

622 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:21:16 ]
構わん、続け給え。



623 名前:デフォルトの名無しさん mailto:sage [2009/04/06(月) 13:28:21 ]
私の貴重な時間を奪わないでください。

624 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 01:30:02 ]
ピタゴラスイッチの「ぼくのおとうさん」という歌が、何気にインターフェースの概念をよく表しているよな。
お店にはいるとお客さん、歩いていると通行人。でもインスタンス(おとうさん)は同じ。



625 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 04:04:10 ]
>>610 の人気に嫉妬w
いまごろ泣いているんだろうなぁ


626 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 08:56:07 ]
>>607
うちの会社でやらないか?


627 名前:デフォルトの名無しさん mailto:sage [2009/04/07(火) 12:06:13 ]
ねーよw

628 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 01:45:10 ]
大きいです

629 名前:デフォルトの名無しさん [2009/04/08(水) 02:51:59 ]
WPFおもれーな、しかしAtom270ではデバッグ後の復帰がおもてーwww

630 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 08:20:58 ]
>>629
Atomじゃなくても重いから

631 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 16:23:00 ]
>>629
VSのスタートアップページ(RSSとかプロジェクトとかが表示されてるタブ)を閉じておくと
なぜか復帰が早くなることがあるよ
むしろ、なぜかスタートアップページを表示しておくととてつもなく時間がかかる
なんでこんな無駄なページが毎回起動時に表示されるのかが分からん

632 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 16:35:25 ]
>>629
どうやって楽しんでる?満足に理解できないでしょ?




633 名前:630 mailto:sage [2009/04/08(水) 17:07:09 ]
>>631
トンクス、スタートアップページは閉じてみます。

>>632
そうだね、まだWPF/XAMLの国内本を3冊と、
MSDNしか読んでないしな〜。

WindowsFormの代替品としてテストしてるけど、
ユーザーコントロールを簡単に部品として作成できるの嬉しい。

634 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 17:43:21 ]
>>633
俺はWPF関連の情報はネットを中心にかき集めてるわ

評価版リボンUIつけられて、アプリボタンのStyle書き換えもうまくいったけど、評価版だからやっぱり不安定だわ。
2010が待ち遠しい

635 名前:630 mailto:sage [2009/04/08(水) 19:01:21 ]
>>634
おれは情弱だからWebでいい資料を探す技術がないんだよ〜。
それはさておき、VS2010とBlend3.0は気になる!

636 名前:デフォルトの名無しさん mailto:sage [2009/04/08(水) 20:21:48 ]
Blend3.0はどうでもいいけど、VS2010は買いだな。
VS2008はWPFの開発環境がまだまだ発展途上だもん。
2010になると強化されるらしいが・・・。

今別なこともやってて、VS2008買おうか迷ってるんだが、
来年VS2010が控えてるからなー・・・。今2008買っても損しそう。
2010買ったら数年使い倒せると信じたい。


637 名前:デフォルトの名無しさん [2009/04/08(水) 22:14:06 ]
一年前と比べるとちょっと賑やかになってきたな
あと2年ぐらいたてば主流になれるのかな

638 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 01:20:59 ]
早くても3年以上はかかるだろうな

639 名前:デフォルトの名無しさん [2009/04/09(木) 01:55:23 ]
WPFのサブセットのSilverlightを使ってしまうと、
もはやHTML+css+Javascriptなんてやりたくなくなるな。

640 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 02:03:10 ]
やりたくならなくならないのか

641 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 09:10:40 ]
>>636
つサンブスクリプション1年分

642 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 13:44:59 ]
>>641
そういう買い方(レンタル)もあるのですね。
マイクロソフトのサイトを確認しても価格が見つかりません。
1年分でいいのでサブスクリプションしたいなぁ。



643 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:01:28 ]
>>642
ttp://msdn.microsoft.com/ja-jp/subscriptions/dd197624.aspx

644 名前:デフォルトの名無しさん [2009/04/09(木) 14:07:42 ]
エッセンシャルWPFは初心者向きですか?

645 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 14:23:01 ]
>644
初心者って言うか、最初に通しで読んで、設計思想とか、
何でそうなってんの?って部分について「へー」と納得する為の本。

後でリファレンスマニュアルとして読み返すような部分はない。

646 名前:デフォルトの名無しさん [2009/04/09(木) 14:58:19 ]
>>645
レスthxです。
Pro WPF買って読んでるんですが、ちょっと難しいなと感じています。
WPFに馴染んでおくという意味で、エッセンシャルWPFを
先に読んでおくとProも理解しやすくなりますかね?

647 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 15:52:24 ]
入門本としては黒い表紙のXAML本がおすすめかな。

APIだけでやりたいなら赤坂本があるけど、
WPFの威力が半減以下にw

エッセンシャルは黒XAML本の後に読んだ方が理解が早いかな、
内容自体はかなり重複してるけどね。

648 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 15:54:42 ]
黒xamlじゃわかんねーよ
WPFの本、店頭に並んでないんだから

649 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:03:14 ]
アマゾン XAML でググれば一番上に出てくるよ。

650 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:07:21 ]
お前、いいやつだな、惚れた

651 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 16:10:39 ]
いいのかい?そんなにホイホイ惚れちまって・・・

652 名前:デフォルトの名無しさん [2009/04/09(木) 16:19:27 ]
>>647
thx
本屋で黒XAMLを見てみます。



653 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 23:41:06 ]
本題なんか?みに行けば軽く吹き飛ぶぐらいなもんなんだから気になったのはどんどん買っとけ
かぶったなら後輩にあげろ

654 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 03:02:22 ]
>>647 の言うとおり
赤坂本はやめとけw

655 名前:デフォルトの名無しさん mailto:sage [2009/04/10(金) 14:26:47 ]
XAMLは@ITの連載記事でなんとかなった。

656 名前:デフォルトの名無しさん mailto:sage [2009/04/11(土) 21:29:32 ]
有名どころのサイトだと、The Code Project のサンプル群が役に立つ。
あと Dr.WPF とか。本はエッセンシャル WPF が良かった。
XAML を書いてると、オーサリングソフトなしで HTML を書いてる気分になるが、
慣れれば GUI ポトペタより手書きの方が楽だね。
VS 2010 では、XAML 中の Binding などにも、インテリセンスが効くようになるそうだから、
ますます手書きが良くなるな。

657 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:03:31 ]
winformレベルのポトペタ環境にした程度ではWPFはカバーできないってだけの気も

658 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:09:21 ]
なんかあれだ。Blend 併用したほうがいいんじゃないか
みたいな気がする。VS 持ってるなら高くないし。

659 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:51:25 ]
ブレンドみたいなフリーソフトが出てきたら本気出す

660 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 00:56:20 ]
作ろうと思った時期があった。
インテリセンスの実装ができなくて挫折した。
(その前に入力したコードに色つけんのもね。実装してみたけどさすがにもたつきすぎで、バグりすぎで)

661 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 16:09:59 ]
Win32→COM→.NETLib→WPF/XAML

662 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 16:34:51 ]
Dependency Propertyが難しい。。
いきなり詳細を見るのは無謀かな。



663 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 21:56:26 ]
UserControl をつくって、そのなかに Rectangle を配置しました。
enum Level { Low, High }; を作成し、Level という名前の
DependencyProperty を作成しました。

で、Level に応じて Rectangle の色を変えようと思い、

<Rectangle>
  <Rectangle.Style>
    <Style TargetType="{x:Type Rectangle}">
      <Style.Triggers>
        <Trigger Property="local:Usercontrol1.Level" Value="High">
          <Setter Property="Rectangle.Stroke" Value="Red" />
        </Trigger>
        <Trigger Property="local:Usercontrol1.Level" Value="Low">
          <Setter Property="Rectangle.Stroke" Value="Blue" />
        </Trigger>
      </Style.Triggers>
    </Style>
 </Rectangle.Style>
</Rectangle>

としたところ、コードビハインド内で、Level を変更しても Rectangle には
反映されませんでした。
どこが問題なんでしょうか?

664 名前:デフォルトの名無しさん mailto:sage [2009/04/12(日) 22:26:07 ]
>>663
DataTriggerでElementNameとかRelativeSourceとか使ってUserControl1のプロパティを参照するバインディングを使う
Trigger.Propertyは基本的に自分自身のプロパティが対象だよ

665 名前:デフォルトの名無しさん [2009/04/13(月) 02:07:34 ]
GridSplitterの挙動で質問です。

現在GridでRowを12、Columnを2で区切り、
それぞれ下記のように使用しております。

<Canvas Grid.Row="0" Grid.Column="0" Grid.RowSpan="12"/>        <Canvas Grid.Row="12" Grid.Column="0" Grid.RowSpan="3"/>
<Canvas Grid.Row="0" Grid.Column="1" Grid.RowSpan="7"/>
<Canvas Grid.Row="7" Grid.Column="1"/>
<Canvas Grid.Row="8" Grid.Column="1"/>

見かけはVSの配置と似たような形になります。

そこでそれぞれのペインの幅や高さを調整したい為に、
GridSplitterを使用して境界を作成しました。

<GridSplitter Margin="1" Height="5" Grid.Row="0" Grid.Column="0" Grid.RowSpan="12" VerticalAlignment="Bottom" HorizontalAlignment="Stretch"/>

<GridSplitter Margin="1" Width="5" Grid.Row="0" Grid.Column="0" Grid.RowSpan="15" VerticalAlignment="Stretch" HorizontalAlignment="Right"/>

このGridSplitterのうち、最初に作成した方がドラッグしても
設定が正しくないらしくまったく移動しません・・・。

よくない箇所などございましたらご指摘くださいませ。


666 名前:デフォルトの名無しさん [2009/04/13(月) 07:45:48 ]
開発ツールだとか開発フレームワークでお作法が難しいのはかまわない
いずれ慣れる。しかし概念が難しいもんはいずれ廃れる。
wpf/xamlはどうも後者のような気がするんだがなあ。

667 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 13:23:24 ]
MSDNってわかりやすい?
プログラミングはじめたばかりなこともあってか、内容読んでてもなんか理解しづらい。
階層も複雑だし。

668 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 13:31:24 ]
他の情報サイト見に行くようにわざと読みにくくつくってある
ユーザーサポートがめんどくさいから

669 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 13:35:45 ]
わからんとむかついたときは、フィードバック書いてる

670 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 16:15:16 ]
MSDNはリファレンスとして以外は使えん。リファレンスとして使う場合も、日本語版は
意味不明な訳語のせいで読んでもさっぱり判らないことが結構多いので、
英語版と両方当たるべし。

入門記事やTipsは、日本語に拘らなければネット上に無料でいっぱい転がってる。
まぁ、ようするに、日本で人気が出ていない技術を触るなら、英語で探せってこった。

671 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 18:35:39 ]
.NETの訳はなかなかいいよ。
Win32APIの訳がクソなのは同意だが。

672 名前:デフォルトの名無しさん mailto:sage [2009/04/13(月) 18:39:48 ]
Win32APIは訳がクソ以前にそもそも存在してないの多数だからな…








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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