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


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

WPF(XAML, XBAP, .Net3.5)GUIプログラミング Part5



1 名前:デフォルトの名無しさん [2009/12/27(日) 10:58:30 ]
あたらしいユーザーインターフェースシステム、Windows Presentation Frameworkについ
て語るスレ。.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 - June 2009 Release
ttp://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117
Visual Studio 2010
ttp://www.microsoft.com/japan/msdn/vstudio/2010/overview/

関連スレ
Microsoft Silverlight その4
ttp://pc12.2ch.net/test/read.cgi/tech/1244812356/

過去スレ
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
ttp://pc12.2ch.net/test/read.cgi/tech/1245384489/
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
ttp://pc12.2ch.net/test/read.cgi/tech/1231506876/
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/

622 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 02:09:47 ]
その手のは一枚絵としてスクロールさせるというよりも同サイズでスライスした要素みたいに考えて
クリッピングと組み合わせて実現するのが常套じゃないのかな

623 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 04:11:30 ]
プログラムなんてプリミティブなアイデアの集合体なんだから
自分ですこしは考えなよ

624 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 06:47:11 ]
>>623
そういうことは2ch言ってもしかたないと思うんだぜ

625 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 07:47:11 ]
>>623
>>619では「考えている」認定されないのか。
2chって厳しいインターネットなんだなw

626 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 14:20:14 ]
二度手間でもエレガントじゃなくても冗長でも、数学的な問題じゃない限り
自分の望むことをコードにすることはできるだろう、諦める=考えてない、ってことさ

627 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 18:38:39 ]
richtextboxで行間を指定する方法はない?
LineHightやMarginを試してみても変わらなかった

628 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 18:39:55 ]
nyuryuが言っていたが、WPFでもすべての部分にDirectXを使っているわけではないらしい。

629 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 18:49:52 ]
>>627
WPFじゃなくてWinFormのでいいんだよな?
LineHeightってどのクラスのプロパティ?
行間ってのは段落間じゃない行間のことでOK?

まあEM_SETPARAFORMATとPARAFORMAT2使うことになると思う

>>628
にゅりゅ ってエロい響きだな

630 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 19:13:55 ]
>627
WPFでフォントコントロールったら、
FormattedText クラスじゃないんか?

ttp://msdn.microsoft.com/ja-jp/library/system.windows.media.formattedtext%28v=VS.80%29.aspx



631 名前:629 mailto:sage [2010/04/23(金) 19:16:34 ]
あ、ここWPFスレだった
C#スレと勘違いしてた、ごめん

632 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 19:22:45 ]
FlowDocument全体の行間ならFlowDocument.LineHeightで問題ないと思うけど

633 名前:デフォルトの名無しさん mailto:sage [2010/04/23(金) 22:08:51 ]
>>627
WPFの方

634 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 12:07:11 ]
すまん。
自己解決した。
トークンごとに読み取ってそのトークンをパラグラフを追加するときに\r\nを無視しないのが原因だったらしい。
xamlを調べて初めて原因が分かった
間違い
<flowdocument>
 <paragarh>aaaa<run>(見えないが\r)</run><run>(見えないが\n)</run></paragrah>
</flowdoument>
正しくは
<flowdocument>
 <paragarh><run>aaaa</run></paragrah>
</flowdoument>


635 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 14:56:26 ]
Paragraph p = richtextbox.CaretPostion.Paragraph;
TextRange range = new TextRange(p.ContentStart, p.ContentEnd);
this.para = new Paragraph();
this.para.Margin = new Thickness(0);
this.Spilitter.Parse(range.Text);
this.doc.Blocks.InsertBefore(p, this.para);
this.doc.Blocks.Remove(p);
パラグラフの置き換えを行うとキャレットがパラグラフの一番最後に移動してしまう。これを防ぐ方法はない?あらかじめCaretPostionを覚えておいて、置き換えた後で戻してもダメだった。


636 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 16:15:42 ]
>>635
var curP = richTextBox.CaretPosition.Paragraph;
var offset = curP.ContentStart.GetOffsetToPosition(richTextBox.CaretPosition);
var newP = new Paragraph();
newP.Inlines.Add("New Paragraph");
richTextBox.Document.Blocks.InsertBefore(curP, newP);
richTextBox.Document.Blocks.Remove(curP);
richTextBox.CaretPosition = newP.ContentStart.GetPositionAtOffset(offset) ?? newP.ContentEnd;
これじゃダメなん?

637 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 21:42:03 ]
>>636
それだとだめだ。
aaa
(aaaの先頭でzを入力)
zaaa
(連続で入力すると、zazaaになってしまう)

なんでWPFってこんなに面倒なの?
文字単位で選択することもできないし、キャレットを文字単位で動かすことすらできない。
開発者は馬鹿なの?

638 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 22:10:32 ]
>>637
何がしたいのか分からないんだけど。
文字単位で選択するなら:
richTextBox.Selection.Select(richTextBox.CaretPosition, richTextBox.CaretPosition.GetPositionAtOffset(10));
キャレットを次の文字に移動するなら:
richTextBox.CaretPosition = richTextBox.CaretPosition.GetNextInsertionPosition(LogicalDirection.Forward);

TextPointer クラスと RichTextBox クラスについて、もうちょっと調べたら?

639 名前:デフォルトの名無しさん mailto:sage [2010/04/24(土) 22:33:53 ]
>>638
目がシパシパしたwww

640 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 02:37:57 ]
>>638
パラグラフが
aaa
となっているときに
bbb
aaa
とすると、aaaを削除するとキャレットがaaaの先頭にあるにもかかわらず、bbbの後ろに移動してしまうのをどうにかして防ぎたい。
TextPointerについても調べたんだが、画面に表示されている文字単位で位置を取得するメソッドはなぜかなかった。



641 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 09:54:47 ]
>>640
>aaaを削除すると

>>635
this.doc.Blocks.Remove(p);に当たるのかな
言ってることがあんまよくわからないけど、空のパラグラフを置いといてその先頭にキャレット置くというのがやりたいんじゃないの?
ソースはそうなってないだろ

642 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 10:24:40 ]
>>641
>言ってることがあんまよくわからないけど、空のパラグラフを置いといてその先頭にキャレット置くというのがやりたいんじゃないの?
それじゃなくて、パラグラフを置き換えてもキャレットの位置をそのまま保つということがやりたい

643 名前:デフォルトの名無しさん mailto:sage [2010/04/25(日) 23:47:54 ]
ScrollViewerのマウスホイールによるスクロールを無効化する方法はありますか?

644 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 00:03:42 ]
PreviewMouseWheelでHandledしちゃうとか

645 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 00:52:19 ]
>>644
e.Handle = trueでうまくいきました
ありがとうございます

646 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 03:26:57 ]
こんな感じでボタンを並べるにはどうすればいいんでしょうか?
uproda.2ch-library.com/239369drL/lib239369.png

平行四辺形とかでしたらなんとかなるんですが・・・

647 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 04:25:39 ]
表示部分にしかあたり判定がないんだから同じpanelに全部かさねて表示だけかえればいいじゃない
そんな形なら標準ボタンを使うわけでもないんでしょ

648 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 06:27:53 ]
ufcpp.net/study/dotnet/wpf_uielement.html
傾斜とかもできるので上辺もしくは下辺を短くするとか
できるかなあと思ったんですが無理ですかね?

649 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 07:04:59 ]
Expression Blend で簡単に星形のボタンとか作れるみたいだね。

650 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 07:09:59 ]
ジオメトリの作り方がわからないから四角の変形で作りたいっていうなら
アフィン変換使いなよ自分で計算してな



651 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 08:48:31 ]
Blend使えればベストだけどボタンぐらいならXAMLだけでなんとかなる。
ContorolTemplateを書けばいいだけでサンプルも結構転がってるから。
あとエッセンシャルWPF読んどけ

652 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 09:41:08 ]
>>648
それは線形変換で表現できないから無理
高校数学C参照

653 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 13:08:53 ]
文字単位で選択するメソッドがないので作ってみた。だが、どうも、遅いような気がする。これより早い方法があったら教えてほしい。
TextPointer getPostionAtCharacters(int offset)
{
for (int i = offset; this.Document.ContentStart.GetPositionAtOffset(i) != this.Document.ContentEnd; i++)
{
TextRange range = new TextRange(this.Document.ContentStart, this.Document.ContentStart.GetPositionAtOffset(i));
if (range.Text.Length == offset)
return range.End;
}
return null;
}


654 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 15:05:53 ]
>>649>>650>>651
ありがとうございます。

しかしここまでGUIをいろいろ変えやすいとなるとデザインセンスないと
きついですね・・・

655 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 18:47:52 ]
宇宙仮面のHP
エラーでまくり

656 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 19:03:56 ]
RadioButtonをC#からCheckする方法ありますか?

657 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 19:07:39 ]
あるよ

658 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 20:20:09 ]
>>656
XAML側でコントロールに名前(Name="hoge")とかやれば
C#側から従来のWinFormのようにいじり放題

659 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 20:38:00 ]
でも実際にはバインディングオブジェクトのプロパティの方を操作するよね

660 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 20:41:36 ]
WPFは要素にName付けたら負け



661 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 20:46:27 ]
それなんてみすりーど。

662 名前:656 mailto:sage [2010/04/26(月) 21:22:55 ]
>>657-661
>>658さんの方法以外はどのように書けばいいんでしょうか?

663 名前:デフォルトの名無しさん mailto:sage [2010/04/26(月) 21:38:08 ]
気にせず名前付けたらいい

664 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 00:08:38 ]
>>660
コードビハインド使ったら負け

665 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 00:53:01 ]
真の勝者はXAMLを使わない

666 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 00:54:50 ]
blend+コードビハインド
都会派はこれ


667 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 00:55:03 ]
ソフトなんか他人に作らせるよね真の勝者なら。

668 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 00:57:01 ]
こだわりのソフト作成なら至福だろ
作らされてるなら敗者

669 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 01:27:42 ]
WPFの場合

プログラマーはバインド関連をマスター
デザイナーはXAML関連をマスター

そんなところですかね?

670 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 02:18:51 ]
BeginAnimationのタイミングが異なっても、
アニメの動きのタイミングを同期させる方法ってありますか。



671 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 04:59:26 ]
あるよ

672 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 08:28:30 ]
INotifyPropertyChangedから依存プロパティへのバインドが機能したりしなかったりする
わけがわからない

673 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 09:00:47 ]
>>669
正解じゃない。

プログラマーはバインド関連とXAML関連をマスター 。

674 名前:デフォルトの名無しさん mailto:sage [2010/04/27(火) 22:14:00 ]
XAML自体はマスターするには.NETプログラミングに習熟してないといけないからデザイナには酷
デザイナーはExpression BlendとXAMLの基礎事項をマスター

675 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:05:19 ]
だな。MSはデザイナがXAMLを触らなくても大丈夫なようにツールを揃えた方が良いだろね。

676 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:08:47 ]
WPFのバインディングは勉強すればするほど魅力的なんだよな
C#のコントロールにも一応項目あったけどここまで使えたっけ?

677 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:15:35 ]
デザイナが実際には動かさないスタイルを自由奔放に作成して
上司は「デザイナの作った物がそのまま動く!素晴らしい!」と言い出して
結局はプログラマが地獄を見る。そういう代物だろ?

678 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:17:38 ]
うーん
まあ前ほどは地獄をみないんじゃないかな
バインディングが強力なのでいい感じだよ

679 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:17:43 ]
そこは誤解がないようにちゃんと主張しろよ

680 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:18:51 ]
.NET 4.0 では NumericUpDown コントロールはサポートされますか?



681 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 00:19:17 ]
デザイナーが作る範囲は所詮はwebページで言えばhtmlに毛の生えたことしかしてないからなあ

682 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 01:14:12 ]
.NET4な。CLRは4.0。

683 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 01:48:52 ]
blend上で動くなら何も心配しなくていいんじゃないの何かあるの?

684 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 02:07:24 ]
www.atmarkit.co.jp/fdotnet/vblab/uiframework_02/uiframework_02_04.html
上のサイトの中央付近から始まる「コレクション・オブジェクトへのバインド」のところを
動かそうとしたのですが下記のようなエラーとなり動きません。

>エラー 1 値 ' {Binding}' をプロパティ 'ItemsSource' に割り当てることができません。
>型 'IEnumerable' のプロパティ 'ItemsSource' は文字列として指定できません。

どのように対処すればよいのでしょうか?

685 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 02:14:01 ]
>>682
.NET 4 と .NET 4.0 の違いを詳しく教えてください。
区別すべきなのでしょうか?

686 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 02:15:10 ]
.NET 4.0 とかくことは意味があると思いますが、
.NET 4 と指摘していることについて詳しく教えてください

687 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 02:19:37 ]
>>684
素直にXAMLで書けよ

688 名前:684 mailto:sage [2010/04/28(水) 02:28:18 ]
自己解決しました。
ListBoxを使っているほかのサンプルと見比べたところ

<Grid x:Name="MainPanel" Loaded="MainPanel_Loaded">
<ListBox ItemsSource=" {Binding}"
DisplayMemberPath="Bmi"/>
</Grid>



<ListBox ItemsSource=" {Binding}"
{Binding}の前の半角スペースが原因で文字列として認識されていたようです。


>>687
質問に対する答えになってないと思いますが・・・

689 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 02:37:07 ]
VS2005 / .NET2.0 しか許されない環境で、
MVVMを模倣して手動でモデリングしたクラスプログラミングをすることは効率化になりますか?

690 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 02:37:15 ]
ガベージイン、ガベージアウト



691 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 02:43:57 ]
>>685-686
「.NET Framework 4」が正式名称。
.NET 4.0と言っても問題なく通じるので実用上の問題はない。わざわざ指摘する程の事でもないだろ>>682

692 名前:689 mailto:sage [2010/04/28(水) 03:17:09 ]
>>74が気になるなぁ。リフレクション調べてみるか…


693 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 03:21:53 ]
>>692
目指す目標としてXAMLなどがあるんだし、それと同じ仕組みにすれば
MVVMも可能じゃないかな?

まあ自前であれこれするより本当はWPFにするべきなんだが

ところでなんでそんな古い環境にこだわらないといけないんだろうw

694 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 05:26:27 ]
VとVMの疎結合さえ保てればとりあえずMVVMって言えるのかな?
・Viewを定義する「なにか」を設計する
 (WPFではXAML)
・「なにか」からViewを生成するライブラリを実装する
 (WPFではSystem.Presentationとかかな?)
・「なにか」と実行時バインドする方法も実装する
 (依存プロパティみたいな仕組み。ここでリフレクションががっつり登場)

マンドクセ・・・
XAMLの仕様はそのまま使って.net 2.0 WinFormsでもViewが構築できるライブラリ作れば
それなりに需要は・・・ないか

695 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 05:34:57 ]
一番重要なのはMとVVMと間のデカップリングだと思うよ。

696 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 05:37:58 ]
そういえば依存関係を切り離せるコンテナってあったよね?
あれは使えないの?

697 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 06:30:25 ]
ざっくりいうとVMはVからのMに対するブリッジって認識だがよろし?

>693
ぶっちゃけマシン性能にもよるんだろうが未だにWPF遅くね?
頻繁な更新が必要なデイトレアプリみたいなもんとか向いてなさそうなんだが。

>694
そげんな感じのもん作ったお。未だに2000とかにも配慮しなきゃいけなくてな( ^ω^)・・・

698 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 06:42:25 ]
DIコンテナは未だによくわからん・・・

699 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 07:39:00 ]
>>693-697
thx.
2005なのは、そういう環境でWindowsXpとWindowsCEの開発レッスンを受けてますw
自分が2000使ってるのでその点も嬉しいかなw

700 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 10:36:39 ]
>>696
CAL(Prism)なんかはUnityのDIコンテナ使ってるよ。

.NET4で追加されたMEFもかな、仕組みはDIコンテナっぽいが。



701 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 10:46:10 ]
ブラウザアプリでエクセルを操作するプログラムが入っててエクセルオブジェクトバージョンが違ってる人がアドレス開いてアプリ操作したらどうなるの?

702 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 10:52:10 ]
WPFが描画にGPUとCPUどっちを使ってるかどうすればわかるんですか?
自分のグラボがWPFに対応出来てるかしりたいんです

703 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 12:52:20 ]
>>702
WPF のパフォーマンス プロファイリング ツール
msdn.microsoft.com/ja-jp/library/aa969767(VS.90).aspx

704 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 13:55:32 ]
依存関係の向きがV→VM→Mとなってればいいだけのことで
VのコードビハインドでVとVMを手で結びつければバインディングはいらないよ
コマンドはVMのメソッドを呼び出せばいいだけ

705 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 14:11:36 ]
MVVMの目的はVMを単体テストすることだよ
それが必要ないんだったらコードビハインドをVMとみなして
XAMLで自身のプロパティにバインドするだけでいい
それが本来WPFで想定されていたバインディングの使い方

706 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 14:12:00 ]
C++ と XAML の組み合わせで使えないのはなんで?

707 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 14:22:27 ]
WPFはマネージコード専用だから
C++/CLIで使えないのは単にMSにやる気がないから
WPFはアンマネージドな世界との相互運用がしづらいしものすごく高レベルなので
わざわざC++/CLIから使うというのはちょっと考えられない

708 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 14:27:11 ]
>>703
WindowsSDKツールのV6.0A V6.1の両方ともWpfPerf アプリケーションが入ってません
どのSDKですか?

709 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 14:30:10 ]
ブラウザアプリでファイルにアクセスできないと何も出来なくないですか
同一サーバー上のファイルにアクセスするにはどうすればいいんですか


710 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 15:39:52 ]
>>709
下手に許すとローカルのファイルをいじり放題。その気になればスパイウェアも仕込み放題ということになってしまうから、それはできないことになってる



711 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 16:12:42 ]
>635で質問したものだが、こういう風にすることでとりあえず解決した
ideone.com/OemER


712 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 19:15:20 ]
>>708
V6.0 か V7.0。
以前は単体でもダウンロードできたけど、今は出来ないみたい。
(windowsclient.net/wpf/perf/wpf-perf-tool.aspx の previous version of WpfPerf)。
SDK を入れるなら Win32 Development Tools だけ入れればいい。

713 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 20:57:54 ]
XAML:<ListBox ItemsSource="Binding ."/>
結果:
B
i
n
d
i
n
g

.

あぁそうか…stringもIEnumerableだったな…  ってこんなんアリなのかw

714 名前:デフォルトの名無しさん mailto:sage [2010/04/28(水) 23:35:19 ]
ちょっとワロタw

715 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 11:29:33 ]
>>712
できたありがとう
ハードウェアレンダー 1 になってた
サンプルサイト見てるとカクカクだから絶対CPUレンダーだと思ったのに・・・

716 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 17:32:32 ]
Shazzam(WPF/Silverlight用のシェーダエディタ)良いね
シンプルだけどWPFやSilverlightのシェーダ書くのには十分
C#側のコードを自動生成してくれる
WPFの見本みたいなかっこいいインターフェイス

717 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:15:45 ]
WPF入門者用のサイトいくつか教えてくれ

718 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:20:07 ]
ゲームパッド使えるの?

719 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:25:12 ]
>>718
XNA+WPFでいけ
sorceryforce.com/xna/tips_xnaonwpf.html

720 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 19:28:45 ]
>>717
ここだなあ
www.atmarkit.co.jp/fdotnet/vblab/uiframework_01/uiframework_01_01.html

WinFormで動的にコントロール追加したりオーナードローとかやったことある人なら
それほど違和感なくやれると思うがこれからって人は2010のマウスでデザインできる
ってを利用した方がいいかもね〜



721 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:40:11 ]
XNAだとXBOX用コントローラしか使えない
DirectXは参照できたからそっちで攻めるしかないんじゃない

722 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:50:42 ]
>>721
PS2パッドも使えるわ
適当なこと言うな

723 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:54:59 ]
>>723
使えねえよ

724 名前:723 mailto:sage [2010/04/29(木) 22:57:13 ]
>>722
つ、使えないと思います

725 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:58:27 ]
訂正来てよかったぜ
どう突っ込んでいいか悩んだぜ

726 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 22:58:49 ]
いやいや現に使ってるしw
なにいってんの?

727 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:01:09 ]
もしかしたら古いコンバーター使っているんじゃないのか?
1年前に買った奴だと普通に使えたわ

728 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:40:58 ]
>>726
そういうのもう良いから。

しかし DirectInput に未対応なのはなんでなんだろね。


729 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:45:29 ]
XNA+DirectXならXBOXコン以外使える
WPF+XNAならXBOXコンしか使えない

730 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:48:59 ]
>>720
全部読んでサンクス

読んで思ったのが
stackpanelに複数配置されたコンテンツを
そっくり別のコンテンツに取り替えるようなのって
xamlじゃ無理?
画像を表示してた場所をすべてボタンに変えるとか
そういうのはやっぱりC#でやるのかね

決まった雛形だら自由に作れるような感じだけど
GUIの表示をごっそり変えるのはどうするのかな

次はバインド読んでみるか



731 名前:デフォルトの名無しさん [2010/04/29(木) 23:50:28 ]
ListBox.ScrollIntoView を使うと、指定したアイテムを画面内に持ってくることができますが、
一番端に表示されます。

これを一番端ではなく、もうちょっと内側(2、3個要素が見えるような位置)にしたいんですが、
どうすればよいでしょうか?

732 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:50:34 ]
>>729
ああ、そういうことか

733 名前:デフォルトの名無しさん mailto:sage [2010/04/29(木) 23:53:22 ]
>>731
そういうかゆいところに手が届かないこと多すぎるよな
それの対処にやたら時間かかって先に進めないのが
すごくイラつくわ
コアの部分に全然時間かけれない

734 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:05:49 ]
2,3個上の要素を指定すればいいのでは・・・

735 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:11:44 ]
やってみたら例外がでた!→範囲内に丸めろよ…

やっと初心者がWPFをやる時代が到来胸が熱くなるな

736 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:46:35 ]
WPF みたいな一部でしか使えないものは危険。

737 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 00:53:21 ]
意味わからん

738 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 02:00:54 ]
>>718
>>729
このスレならどうせWindows専用ってことだろうから
joyGetPosをP/InvokeすればXBOXコントローラ以外も使える。
Windows 95から存在するAPIなので安心。
ttp://msdn.microsoft.com/ja-jp/library/cc410473.aspx


739 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 10:12:31 ]
WPF勉強しているんだけど
初心者にはあえてこちらの方がお勧めのような気がする
GUI部分とロジック部分を自然に分離して記述するから
ソースも見やすくなりそう

740 名前:デフォルトの名無しさん [2010/04/30(金) 13:01:04 ]
実際に初心者に使わせたら大半をコードビハインドに記述、
ViewModelでViewを生成し、
ViewがViewModelのコントローラという素敵構造にしたんだが…



741 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 13:18:34 ]
>>720
これずーっと読んでいって
第 3回 “見た目”を決めるリソースとスタイル
で詰まった
むずぅ

742 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 13:24:51 ]
>>741
そう?
WinFormでもImageListなんてあるけどあれの汎用版みたいなもんでしょ

743 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 13:26:15 ]
おっと途中になった
スタイルはCSSと似てるし

744 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 17:50:21 ]
みんなExpression Blen使ってるの?

745 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 21:31:35 ]
>>744
これからWPF試してみたいのでExpression Blend 4が早くでないかなと思ってる。
VS10が出たし、もうすぐだと思ってたんだがアナウンスがないな…

746 名前:デフォルトの名無しさん mailto:sage [2010/04/30(金) 22:57:26 ]
ブレンド無しで WPF ってwww

747 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 02:07:09 ]
Blendなんて飾りですよ
ControlTemplate生成にしかわからんのです

748 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 05:48:20 ]
別にボタンを星型にしたいとか思わないしなあ

749 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 08:02:08 ]
ボタンを星形にするだけがテンプレートじゃないだろ
WPFの胆はDataTemplateやItemTemplate
VSだけだと手書きしないといけない

750 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 09:16:53 ]
Blendなきゃだめなのか
WPF一気にやる気なくなったわ



751 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 10:52:30 ]
やる気も金もない人間は必要とされていないようだ。

752 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 10:52:45 ]
2010を使い.NET4でWPFを始めてみました
ググりながら試行錯誤してコマンドとコンテキストメニューを繋ごうとしています
キー操作だと正常に動作し、PlayPause_Executeが呼ばれるのですが、
コンテキストメニューは見出しやキーの表示は合っていますが、グレー表示のままで選択できません
何が悪いのでしょうか?

タイマで定期的にCommandManager.InvalidateRequerySuggested();してみても変わらないようですし
キーを押したときにはCheckCanExecuteCommandが呼ばれますが、それ以外では呼ばれないようです

public class Commands
{
public static RoutedUICommand PlayPause = new RoutedUICommand("再生/一時停止", "PlayPause", typeof(Commands),
new InputGestureCollection { new KeyGesture(Key.Space) });
}

XAMLで(はしょっています)
<Window xmlns:local="clr-namespace:hoge">
<StatusBar.ContextMenu>
<ContextMenu>
<MenuItem Command="{x:Static local:Commands.PlayPause}" IsEnabled="True" />
</ContextMenu>
</StatusBar.ContextMenu>

C#側コンストラクタで
CommandBindings.Add(new CommandBinding(Commands.PlayPause, PlayPause_Execute, CheckCanExecuteCommand));

private void CheckCanExecuteCommand(Object sender, CanExecuteRoutedEventArgs e) {
e.CanExecute = true;
}


753 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 11:04:27 ]
>>751
お前は一日中いろんなスレで煽るしかできない人間みたいだな

754 名前:752 mailto:sage [2010/05/01(土) 14:06:29 ]
>>752
どうやらContextMenuの場合だけのようで、理由はまだよくわかりませんが
とりあえずコンストラクタの最後にFocus();を入れることで回避できることがわかりました。

755 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 14:11:55 ]
>>753
お前は一日中いろんなスレで煽られるしかできない人間みたいだな

756 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 14:48:48 ]
Blendなんて飾りですよ。漢は手書き。マジで、Blendは非プログラマ向けの
ツールだから、開発者はUIをちゃんと設計して手書きした方が覚えがいい。

757 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 14:51:15 ]
うむ確かに手書きで覚えないとここまで分離した作りになると
わからなくなるぞ

JavaScript書くやつだってhtmlやCSSは知ってるだろ?

C#とXAMLの関係ってそういうもんだよ

758 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 14:59:42 ]
非プログラマ向けとかまで言い切っちゃうのは逆にblendを過大評価しすぎ
手書きすることとUIを設計することは全然関係ないし
細かいアニメーションとかスタイル指定とかblendあったほうがいいに決まってんじゃん

759 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 15:05:52 ]
設計して、手書きしろと薦めただけだから関係なんて求められてもねぇ。
設計してBlendで作れるんなら別にそれでいいけど、細かいアニメも
スタイルも、設計さえしてあれば、手書きできるから、敢えてBlendじゃ
無いとできないものって無いでしょ。

感覚的に作りたいという意味でBlendはプログラマ的じゃないよ。
でも、非プログラマに使わせて使えるかというと、使えないんだけど。
下手にソースを汚されても困るし、やっぱBlendは要らないなぁ。
存在が非常に中途半端。

760 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 15:09:09 ]
ああそれだとまあ同じように感じてるのかな
現状のblendはプログラマがデザイン的な作業をすることをサポートするツールって感じる
で俺には有用
アニメ付けるのにプレイバックなしで手書きとかやってらんない



761 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 15:48:50 ]
ホームページビルダー使えたからって
プログラミングができるわけじゃない

762 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 16:41:15 ]
html・cssの手書きとかあんな糞つまらん作業したって別に自慢には

763 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 17:57:43 ]
>762
cssは手書きしてた頃しか知らない。誰でもできる技術になった頃には
辞めてたから。XAMLもアホでもできるようになる前には、辞めて別の
何かを始めるよ。

元々は、つまんないとかの話じゃなくて、プログラマなら、デザイナで
操作するだけじゃなくて、ソースで中身を覚えろって話なんだけどね。

764 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 18:46:17 ]
何こいつ気持ち悪い

765 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 18:55:34 ]
わろた
手書きしてる俺カッケー(キリッ

766 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 18:58:13 ]
>>763
アホでもできるようなコードしか書けないから
すぐに追い抜かれて嫌になるのですね

767 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:00:47 ]
並のレベルのプログラマならblendの出力なんかいざとなればいつでも読めるんだからどうでもいい話

768 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:06:25 ]
>767
あぁ、いかにもやったこと無いって感じのコメントだね。
できるけど、嫌んなるよ。

769 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:24:15 ]
>>767
やればできる、っていうのとは あんまり関わりたくない・・・

770 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:24:57 ]
どうだろね
まだ本質的にややこしいGUIは作ってないし
blendで弄って出てきたXAML見てなるほどとか言っちゃうことがあるレベルだからわからんけど
でもXAML一緒に表示して弄れるんだからあんま問題なくない?



771 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 19:52:49 ]
>770
仕様的に危ない点もあるけど、デザイナが他にいるとして、見た目は
他人が作るわけだ。大概のデザイナはソースが読めないから、
ソースにコメントを入れるとか、読みやすいソースを書くというセンスも
無く、Blendが生成したソースがそのまま送られてくる。

書き直そうと思っても、こういうソースになった意図(内部的な実装仕様)
を読み解かないと、書き直せない。けど、デザイナは内部実装の仕様なんて
存在自体を知らんよ。

一人でやるなら自分の頭の中だけで解決するから、好きにすりゃいいと思う。

772 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 20:07:41 ]
まあ俺はもともとblendがデザイナとの協働ツールとして優れてるとは全然思ってないからね

773 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 20:24:49 ]
言い訳するな

774 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 20:50:34 ]
言い訳ってw
>現状のblendはプログラマがデザイン的な作業をすることをサポートするツールって感じる
先にこう書いてるよ

775 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 21:36:36 ]
ListViewで6000行10列ぐらいのDataTableバインディングしてるんだけど、スクロールが遅い
コンテナのリサイクルと仮想モードは有効にしてて、遅延スクロールは最終手段ってことで保留してて、
現状でこれなんで、デザインどころじゃないんだが
兄さん達はどうやって最適化してる?


776 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:05:12 ]
>>775
表示しているところだけListViewに追加する
他はダミー

777 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:10:14 ]
バインドするアイテムを制限するしかない気がする。

778 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:22:34 ]
そういうの必要になったらなにを試すかなと考えたら
直結するんじゃなくてvisualBrush化して並べるとかかなと思った
スクロールは早そうじゃない?

779 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:42:03 ]
>>778
visualBrushが分からんので調べたらようはハリボテか!それ頂き!

適当にブラーかけて描画省略してもよさそうだ、
兄さん達ありがとう。試行錯誤してみるよ


780 名前:デフォルトの名無しさん mailto:sage [2010/05/01(土) 22:44:25 ]
描画というより重いのはレイアウトだろ



781 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 03:19:00 ]
ボタンをひし形にして疑似3Dゲームのように並べるにはどうすればいいだろう?
理想としてはウインドウの大きさに合わせて縮尺が変わってくれるといいのだが・・・

782 名前:781 mailto:sage [2010/05/02(日) 03:40:35 ]
イメージとしてはこんなのです
ttp://tsushima.2ch.at/s/news2ch61559.png
青のラインの上をめざしてて、下の方は避けた挙動です。

783 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 04:38:03 ]
SkewTransform弄れば擬似3Dっぽい表現は一発
ウィンドウのサイズに追従させるのはパっとはわからない

784 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 04:57:30 ]
一人で作る小規模アプリにWPFは効率悪すぎる

785 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 05:12:47 ]
>>783
自己レス
初期表示で傾斜つけたコンテナをウィンドウに収まるように配置しとけばリサイズには勝手に追従するなあ
uniformgridならうまく拡大してくれるような気がする

786 名前:781 mailto:sage [2010/05/02(日) 05:15:31 ]
>>783>>785
朝早くありがとう
ボタン単体で傾斜つけてグリッドに埋め込んだりしてたけどどうもおさまり悪いので
ボタンを入れ込むグリッドそのものを回転しちゃえって方向で今調べてました・・・
Blend使った方が楽かなあ・・・・
こいつが出力するxamlで勉強した方が速そう・・・orz

787 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 05:30:40 ]
UniformGridでかっちりできるね
縦横比によっては見えなくなっちゃうけど
blendはそりゃあったほうがいいでしょ
なかったらこんなのめんどくさくて試す気もしないもん

788 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:16:28 ]
こういうことか

ttp://tsushima.2ch.at/s/news2ch61563.png

ひし形の場合って影は下と右どっちが普通なんだろう

789 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:19:16 ]
おっとボタン上のテキストは正面向いてないといけないのかなー
それだと一手間いるな・・・

790 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:19:45 ]
>>788
まさにそういうのです
まあ影はこの際いらないかなあ・・・
将来的にはスキンも考えてるので



791 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:30:26 ]
>>788
あれですかね
ボタンを回転させるよりボタンを星形にするようにベクターをいじって
ひし形のボタンを作った方がいいかもしれないですね

ただそういう場合ってヒットエリアって矩形なんだろかそれとも作った形そのままなんだろうか・・・

792 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 06:56:29 ]
ちなみに>>787で作ったのはこんなのね
ttp://tsushima.2ch.at/s/news2ch61565.png
簡単だけどかなり見劣りするな・・・


793 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 07:25:32 ]
>>792
なるほど・・・
こちらでもBlend入れてデザインしてみましたが難しいですねw
ttp://tsushima.2ch.at/s/news2ch61568.png

ボタンそのものの形は変わるのですがあたり判定が元のままw

794 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 07:53:44 ]
あら?傾斜(擬似3D)じゃなくて回転でいいわけ?
だったらこういうのも
ttp://tsushima.2ch.at/s/news2ch61570.png
簡単・・・プレゼンターだけをグリッドとは逆に回転させるスタイルを定義する
判定も問題なしなんだけどこれだとリサイズしたときにむちゃくちゃになっちゃうな

795 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 07:59:31 ]
>>794
まあ本当はウインドウサイズ固定などができれば楽なんですけど
なにせウインドウズアプリなのでどうしてもウインドウサイズの変更は
できて当たり前みたいなところがあるのがつらいんですよね・・・

まあこんな状況だからウインドウズ関連で指を使ったタッチパネルUIが
普及しないんでしょうけど

細かいタッチ制度を出せるマウスもしくはスタイラスのような
ポインティングデバイス向けUIは得意なんでしょうけどね・・・

796 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 08:08:12 ]
>>793
ちゃんとClipしていれば当たり判定は問題ないはず
フォーカスの破線は自分で描画(もしくは消す)

ついでに、>>788のXAML
ttp://pastebin.com/TngzgvvF

797 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 08:37:34 ]
>>796
ありがとうございます

うーん難しいw

798 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:51:49 ]
というか、ゲーム作るならこれぐらいボタン使わないで描画しろよって話だな
中学生でもできるぞ

799 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:53:36 ]
WPFの3Dはゲーム作成の為にある

800 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:57:55 ]
データの視覚化とかトランジション効果とかの為だろ



801 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:59:10 ]
>>798
こういうUIを採用してるアプリが思い当らなかったのでゲームを例題にしてますが
ゲームじゃないですよ

802 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 10:59:52 ]
>例題にしてますが
>ゲームじゃないですよ
例題にしてますが
作っているのはゲームじゃないですよ

803 名前:デフォルトの名無しさん [2010/05/02(日) 11:06:15 ]
ttp://tsushima.2ch.at/s/news2ch61577.png
改造して影をつけてみたけど解像度あがると重い・・・

ttp://tsushima.2ch.at/s/news2ch61578.png
赤丸のあたりに別途ボタンをつけたりする方法がわからない・・orz

804 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 11:32:16 ]
Gridはレイヤーみたいな使い方もできるぞ
がんばれ

805 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 11:42:44 ]
道具に振り回されている感じだね
もっと頭使えよ

806 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 12:03:17 ]
gridの使い方もわからない男の人って…

807 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 13:10:06 ]
>>803
これが進化したらビューポイントが出来上がりそうだと思った。

808 名前:デフォルトの名無しさん [2010/05/02(日) 17:30:25 ]
>>804
はい

>>805
まあ休みの暇つぶしに始めたのでいろいろわからないことだらけなんですよね・・・

809 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:28:29 ]
>>803
これ格闘ゲームのキャラクター選択画面みたいだな

810 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:52:56 ]
こんなしょぼいもん作って喜んでるって
レベル低いな



811 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:04:58 ]
俺のデザイン最強(キリ
こんなしょぼいもん作って喜んでるって
レベル低いな(キリ

どんなUI作ってるんだろう見てみたい

812 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:06:23 ]
言ったもん勝ちだし。
MVPの俺が言うんだから確か。

813 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:11:33 ]
そういえばWinFormのClientSizeに相当する動きってどうやればいいんだろう

814 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 20:15:45 ]
コントロールとDataSetとの接続の仕方が判らない・・・
データベースを介さないと出来ないのか?

815 名前:781 mailto:sage [2010/05/02(日) 20:21:27 ]
>>810
新しいことへの挑戦中なのでこれもラフスケッチみたいな物ですよ
今後でるであろうタッチパネル搭載端末で使いやすいUIの研究ですから
ある程度決まった画面内やりとりするってのはゲームUIから学ぶことが
多いのでこれもその一つなんですよ

WPFの勉強も兼ねてですから
まあ偉い人にはわからないでしょうねw

816 名前:781 mailto:sage [2010/05/02(日) 20:31:16 ]
勝手にコメントしないでください

817 名前:781 mailto:sage [2010/05/02(日) 21:12:26 ]
じゃあ、俺が変わりに。

アノデスネ・・・。

818 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:16:50 ]
Fromの上にWPFのMediaElementを乗せた簡易メディアプレイヤーを
.NET4で完全WPFに書き換えたら重くなった
やってることはほとんど大差ないのに何故だ

819 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 23:36:30 ]
>>813
Window.ContentのWidthとかHeightじゃだめ?

820 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 23:43:45 ]
>>815
研究なら自分でやることだな
この程度のことを質問しているようじゃ
何も出来そうにないな



821 名前:781 mailto:sage [2010/05/03(月) 01:19:15 ]
>>820
その人成りすましなんですって・・
ID欲しいよ・・・

822 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 01:40:50 ]
>>819
ありがとうございます。

別件で
動的にコントロールを追加したりする場合はやはりC#側で制御するしかないんですかね?

823 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 03:13:09 ]
動的の度合いがわからない

824 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 08:03:33 ]
技術制約無視して条件分けとか言い出すんだから「xamlにコード埋め込め」でいいと思うよ

825 名前:818 mailto:sage [2010/05/03(月) 10:07:19 ]
>>818
動画の上にテキストを表示するためにOuterGlowBitmapEffectを使ってたけど
.NET4で削除された?のでDropShadowEffectに書き換えたがこれが重いらしい
ウインドウサイズをいじって動画と重ならないようにすると少しだけ軽くなり
非表示にしたりEffectを無効にするとぐんと軽くなる

ヘルプの.NET4の相違点のページかなんかで
描画方法が変わったとか何か書いてあった気がするけどページが見つからない

826 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 10:27:06 ]
BitmapEffectはパフォーマンスがクソだからというので
ピクセルシェーダでGPUを思いっきり使うようになったんだけど(.NET3.5〜)
ハードウェアが対応してないとか

827 名前:デフォルトの名無しさん [2010/05/03(月) 21:51:18 ]
>>825
俺は、動画はないけど文字列をいっぱい表示してるけど縁取りでDropShadowEffectを使ってみたら重いな、OuterGlowBitmapEffectも重かったけどね
ボカシの処理を無くして縁取りの処理をもっと軽くできないものか・・・

828 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 07:05:54 ]
>>827
ぼかしを無くして影を落とすだけでも重かったので、妥協して半透明の背景をつけることにした
BitmapEffectが重いからって話だったはずなのにこっちの方が重くなるのが納得いかない
グラボは6800XTだからShader 2.0には対応してるはずだけど3.0が必要なのかな


829 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 15:31:17 ]
カスタムコントロールにResourceDictionaryを定義した
xamlファイルを結びつけるのはどうすればいい?
カスタムコントロールのコードからリソース内の表示用部品を利用したいのだけれど。

830 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 17:01:51 ]
>>829
xaml の読み込み
ResourceDictionary.MergedDictionaries
or
XamlReader.Load(file)

部品の取得
FrameworkElement.FindResource(key)
or
ResourceDictionary[key]



831 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:34:43 ]
>>829
これでも
ResourceDictionary rd = new ResourceDictionary();
rd.Source = new Uri("pack://application:,,,/MyApp;component/Dictionary1.xaml", UriKind.Absolute);
string myValue = rd["MyValue"] as string;

832 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 18:44:44 ]
>>830-831
さんくす!
使うリソースは1つだけなので
this.Resources.Source = new Uri("pack://application:,,,/testcontrol/test.xaml");
でいけた。this.Content = this.FindResource("button");てな感じで使えるね。

これでようやくコントロールの表示部分に取り掛かれるわ

833 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 19:03:40 ]
日本のメーカーPCはグラボ非搭載が主流だからWPFはきついな

834 名前:デフォルトの名無しさん mailto:sage [2010/05/04(火) 19:28:07 ]
誰一人つられないんだからね

835 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 00:38:09 ]
現在主流のCore-iモデルの内蔵はintel HD Graphicsで
そのコンパネがWPFだったりするんだけどな

836 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 01:34:12 ]
WPFってなんだろう

837 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 01:44:00 ]
人生・・・かな?

838 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 03:17:03 ]
鉄板麺!!

839 名前:デフォルトの名無しさん mailto:sage [2010/05/05(水) 16:50:17 ]
WPFはAdobeのあれをパクったような感じ

840 名前:デフォルトの名無しさん mailto:sage [2010/05/06(木) 08:43:05 ]
国連になんかあったな



841 名前:デフォルトの名無しさん [2010/05/06(木) 23:49:46 ]
Window の中に Grid が1つあり、
その中に同じ大きさの Viewbox を3つ配置しています。
3つのViewboxの位置は同じで、重なって配置されます。

それぞれのViewboxにはGridを配置し、その中には
・透過色を指定したPNG画像と
・Rectangleを1つずつ配置しています。
3枚の画像は同じ大きさで、UniformToFill にしています。
Rectangleは、各画像の背景色の領域中に配置するようにしています。
また、Rectangleはクリックされると Fill が変わるようにしています。

このとき、一番階層が高い Viewbox 内のRectangleしかクリックに反応してくれません。
2番目、3番目のViewbox内のRectangleも反応させるにはどうしたら良いのでしょうか?

ソースを以下にUPしましたので、よろしくお願いいたします。
ttp://www.dotup.org/uploda/www.dotup.org866125.zip.html
pass: wpf

842 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 00:02:32 ]
現象が発生する最小のプログラムでないと誰も見ないぞ
単純に一番目にRect三つ配置すればいいんじゃねーの

843 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 00:05:50 ]
>>841
Grid.Row, Grid.Column を分けずに、一つのセル(?)でやってるから、最後の Viewbox がイベントとっちゃって、その兄弟にはイベントが伝播しない。
素直に Canvas 使うか、Grid.Row を3つに分けなさい。

844 名前:841 mailto:sage [2010/05/07(金) 00:12:10 ]
>>842
急いで書いたため、情報不十分でした。
各Viewboxは個別に移動、拡縮をしたいのです。
(それに応じでViewbox内のオブジェクトも、移動+拡縮させたいです)
ですので、一番目にRect3つ配置ではダメなのです。

>>843
ありがとうございます。
いただいた情報を元に考えて見ます。

845 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 00:36:07 ]
>>844
Grid を入れ子にすれば、Grid で MouseUp をとるように変更すればできたけど・・・
もう少しスマートな方法ないかね。Viewbox 使わなければ Background に Transparent 設定してイベント透過させられるのだけど。

<Grid MouseUp="rectangle_MouseUp">
  <Viewbox />
  <Grid MouseUp="rectangle_MouseUp">
    <Viewbox />
    <Grid MouseUp="rectangle_MouseUp">
      <Viewbox />
    </Grid>
  </Grid>
</Grid>

-----------
private void rectangle_MouseUp(object sender, MouseButtonEventArgs e)
{
    ((((sender as Grid).Children[0] as Viewbox).Child as Grid).Children[1] as Rectangle).Fill = Brushes.Red;
}

846 名前:845 mailto:sage [2010/05/07(金) 00:40:27 ]
Grid 全体で MouseUp とってしまうから駄目だった。
忘れてくれ。

847 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 00:43:11 ]
つまり透過してるので最前面でFill状態の画像をムシして
その後ろの画像にヒット判定させろ?

無理じゃね?

848 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:05:45 ]
いや3ついっぺんにクリックされたように扱いたいって話じゃないの?

849 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:09:17 ]
>>844
読み流してた
つまり>>847なんだなごめん

850 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:10:43 ]
>>848
それだったら全面のやつがイベント受けたらほかの物にも伝えるとかそんなんでいいんじゃね?
それか画像を管理してるコンテナ、この場合はGridがクリックイベント拾うとか



851 名前:841 mailto:sage [2010/05/07(金) 01:12:58 ]
皆さん、ありがとうございます。
やはり透過処理していようとも、画像の領域から
イベントを透過させることは無理(難しい?)みたいですね。

>>847-848
一番の理想は、”見えているオブジェクトがイベントを拾う”です。
うpしたものを見ていただけているか分かりませんが、
例えば2番目のViewboxを仮に下方向にAnimationさせた場合、
2番目のViewboxに配置したRectangleは「黒色」の後ろに隠れます。
このとき、隠れたRectangleはクリックできないようにしたいです。

が、それはあくまでも理想であり、3つヒットでも出来るなら嬉しいです。

852 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:43:08 ]
一番上が拾うんでいいならTunnelじゃいかんのかね

853 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 01:50:25 ]
しかしwindowsはマウスありきでできてるから
こういうGUIまわりは作りにくいな

854 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 02:04:46 ]
>>852
TunnelってPreview〜のあれ?
重ねたImageに対してトンネルなんてできるのか?

855 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 21:31:34 ]
>>841
ViewBox内のImageに
IsHitTestVisible="False"
をいれたら下のRectangleも反応したよ

ただ、これだと隠れたRectangleをクリックさせない
というようなことはできないけど

856 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 22:00:45 ]
Imageに不透明な部分だけマスクするClipを指定すればいいんじゃないの?

857 名前:デフォルトの名無しさん mailto:sage [2010/05/07(金) 23:09:28 ]
4の良書でないかなぁ

858 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 05:54:20 ]
WPF4のデザイナで配置したコントロールのフローがWPF3と違いますよね…?

ウィンドウのリサイズを行うと、WPF3だと勝手に連動してコントロールのサイズが変わるのに、WPF4だとウィンドウだけしかリサイズされない…。
結果、プロパティやXAMLをちょこっと変更しなければいけないのだけれど。

859 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 06:52:09 ]
update
code.msdn.microsoft.com/WPFShell/Release/ProjectReleases.aspx?ReleaseId=4332

860 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 10:34:01 ]
>>858
コントロールの上下左右に小さな円があるだろ
それクリックするとコンテナの端からの距離が固定される(WinFormsのAnchor相当)



861 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 11:12:39 ]
WPFのフォントレンダリングをフォームアプリと同じにすることはできないんでしょうか?
VS2010がフォームと同じフォント表示になったのに、
自分で作ったWPFアプリケーションのフォントレンダリングが前のままです。

862 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 11:59:32 ]
同じというのは違うけど。
3のソースを4でコンパイルするだけじゃ駄目。

TextOptions.TextFormattingMode
TextOptions.TextRenderingMode


863 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 13:08:49 ]
FlowDocumentに表示されている内容の表示上のサイズを取得する方法はありますか?

864 名前:デフォルトの名無しさん mailto:sage [2010/05/08(土) 22:23:02 ]
>>860
クリックですか。
クリックしたところ、希望の動作になりました。

ありがとうございました。

865 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 21:59:51 ]
int型のプロパティPercentがあって、
それをバインドしているTextBlockでは、後ろに"%"を付けたいときって
どうすればいい?

866 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:01:19 ]
IValueConverter
するまでもないな、StringFormat

867 名前:デフォルトの名無しさん mailto:sage [2010/05/10(月) 22:17:23 ]
866 なんか分かりづらくなっちゃった
{Binding Path=Percent, StringFormat=0\\%}
これでいいのか?
マークアップ拡張内は書式指定文字列が訳分からんことになるな

868 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 17:42:43 ]
>>867
おおーまさしくこれだ。
なんで円記号が2つも…って思ったけどマークアップ拡張内では円記号もエスケープ必須か

869 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 17:45:00 ]
途中で送信しちまった。>>867サンクス

870 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 18:13:55 ]
GUIプログラミングの初心者は、WPFから入るよりForm使った方がいいのかな?
WPFはまだ情報量少ないみたいだし



871 名前:デフォルトの名無しさん [2010/05/12(水) 18:18:10 ]
>>870
最終的に何を作るかでも変わるけど似てるようでかなり違うからなあ
下手にFormの方を覚えるとWPFだと戸惑うこともあるよ

872 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 18:21:51 ]
GUIプログラミングはWPFから入ったけど今更Formなんて勉強する気しないよ

873 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 19:48:05 ]
>>872
最初からWPFって、どうやって学習した?
後学のために教えて欲しい。

874 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 19:53:59 ]
>>873
ネットで情報収集。殆どはMSDNから。
書籍はエッセンシャルWPFだけ買った。
質問はここやC#スレで。
まだ全体は勉強してないけどな。目的のアプリ作るには一部だけでも十分。
C#と.NET Frameworkも同時にだったからだいぶかかったが。

875 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 19:54:50 ]
WPFって動的にコントロールを生成しちゃいけないみたいな感じが面倒

876 名前:デフォルトの名無しさん mailto:sage [2010/05/12(水) 20:02:06 ]
え?DataTemplate使えば必然的に動的に生成しまくりだろ?

877 名前:デフォルトの名無しさん [2010/05/12(水) 20:03:39 ]
>>875
そんなことはないんじゃないの?
WPF側で名前つけておけばFormでやてったようなことはできるし
そういうのがだめってのならWPFなりの書き方すればいいだけだし






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

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

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