WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
at TECH
1:デフォルトの名無しさん
09/01/09 22:14:36
あたらしいGUI FW、WPFについて語るすれ。
.NET3.5 SP1 もリリースされて盛り上がってまいりますた。
Visual Studio 2008
URLリンク(www.microsoft.com)
Microsoft .NET Framework 3.5 Service Pack 1
URLリンク(www.microsoft.com)
WPF Toolkit - October 2008 Release
URLリンク(www.codeplex.com)
関連スレ
Microsoft Silverlight 2.0 その3
スレリンク(tech板)
過去スレ
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
スレリンク(tech板)
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
スレリンク(tech板)
2:デフォルトの名無しさん
09/01/09 22:49:52
2
3:デフォルトの名無しさん
09/01/11 00:19:22
Windows 7 beta 入れてみたが、「Windowsの機能の有効化または無効化」を開くと、
「Microsoft .NET Framework 3.5.1」というのがデフォルトで入ってた。3.5 SP1の事か?
でも、そのツリーの下にある、
Windows Communication Foundation HTTP Activation
Windows Communication Foundation Non-HTTP Activation
は入ってなかった。WCFが使えないって事?
4:デフォルトの名無しさん
09/01/11 00:55:21
別に Vista のコンポーネントもそうだよ
つ URLリンク(msdn.microsoft.com)(VS.80).aspx
5:デフォルトの名無しさん
09/01/14 14:12:25
WPF製の実用的なソフトってなに?
6:デフォルトの名無しさん
09/01/14 15:16:13
>5
つ URLリンク(tmpgenc.pegasys-inc.com)
7:デフォルトの名無しさん
09/01/14 18:11:15
へぇ、それWPF使ってるんだ
8:デフォルトの名無しさん
09/01/14 18:32:45
VS2010
9:デフォルトの名無しさん
09/01/15 01:39:24
Windows 7 x64 のベータ版を入れてみたが、Windows自身のGUIはまだWPFベースにはならないんだな。
Vistaと同様、相変わらずWin32ベースのGUIがそのまま残っていることに驚き。
しかしXP環境の .NET3.5で動かすと異様にモッサリなWPFも、Windows 7の環境だとサクサクだね。
それにVS2008もx64だと速い速い!
.NETのパフォーマンス、そしてIIS 5.1/6とIIS 7との機能差も無視できなくなったし、企業も今度こそは
Window Server 2008と、Windows 7 に大移動かね。
10:デフォルトの名無しさん
09/01/15 10:02:05
VS2008はWOWで動いてるんじゃなかったっけ?
11:デフォルトの名無しさん
09/01/15 23:02:58
つまり、x64 Windeows上では32ビットアプリもサクサク動くということなんだろう。
12:デフォルトの名無しさん
09/01/15 23:44:43
VSにも64bitとかあったようななかったような・・・
13:デフォルトの名無しさん
09/01/16 13:38:12
>>5
LoiloScopeもWPFじゃなかったっけか
14:デフォルトの名無しさん
09/01/19 22:36:57
INotifyPropertyChangedを実装するクラスのプロパティをUIにバインディングしてるんだけど
プロパティの変更通知をUIと違うスレッドでしても平気なの?
実験では問題なく動いてるように見えるんだけど、フレームワーク的に想定してるの?
15:デフォルトの名無しさん
09/01/22 15:51:42
俺は 動く=問題ない と思ってるw
でも干渉とかを心配するなら場所を1つに決めて書き直す事を勧める
16:デフォルトの名無しさん
09/01/27 23:40:30
DispatcherObject.CheckAccess()がインテリセンスに出てこないのはなんでだろう…
17:デフォルトの名無しさん
09/01/27 23:49:59
DispatcherObjectの全てのメンバには
[EditorBrowsable(EditorBrowsableState.Never)]属性が付けられてる
DispatcherObjectはWPFの多くのクラスが継承してて,メンバ名も抽象的で
コントロールのメンバと混ざるとややこしいから隠してるんじゃね
18:デフォルトの名無しさん
09/01/27 23:51:54
StackPanelでコントロールを並べたいんだが、
ListBoxみたいにItemsSourceを設定する方法はない?
19:デフォルトの名無しさん
09/01/28 00:15:07
それこそListBoxで並べりゃいいんじゃね?
20:デフォルトの名無しさん
09/01/28 00:19:24
>>17
ああ、そういうことなんか
21:デフォルトの名無しさん
09/01/28 19:40:00
>>19
選択できないようにできる?
22:デフォルトの名無しさん
09/01/28 19:50:12
画像に対してテキストの回り込みの方法を教えてほしい。
HTMLならalignとかで出来るけども、回り込み的な表現を行いたい場合の
方法がわからない。
わかる方、教えてほしいです。
23:デフォルトの名無しさん
09/01/28 20:33:07
2chは日本で一番大きな掲示板だと聞いたのですが
WPFって世界で使ってる人5人ぐらいですか?
24:デフォルトの名無しさん
09/01/28 20:48:37
WPFを作ったチームが5人とは思えないからもう少し多いだろうな。
25:デフォルトの名無しさん
09/01/28 20:53:03
VS2010を作ってるチームはどんぐらいなんだろう?
26:デフォルトの名無しさん
09/01/28 20:55:47
>>25
2010人くらいじゃね?
27:デフォルトの名無しさん
09/01/28 21:22:34
そういうことだったのか
28:デフォルトの名無しさん
09/01/28 21:25:11
マイクロソフトと戦う2010人の開発者たち
〜 Microsoft VS 2010 〜
29:デフォルトの名無しさん
09/01/28 21:29:14
説得力
30:デフォルトの名無しさん
09/01/28 21:32:24
WPFにはFlashみたいな画質設定とかないのかな?
瞬間の動作は気分的な問題だから、重くならないように荒くさせてあげたいんだけど。
(だったら瞬間どうさ止めろとかなしでw
31:デフォルトの名無しさん
09/01/28 21:37:35
<Label Content="{Binding Name}" />
今、こういうふうにラベルで文字を表示してるんだが、
<Label Content="{Binding Foo(Name)}" />
こんな感じで処理してから表示したい。
どうすればいい?
Fooを↓みたいに定義すればコンパイル通るんだが文字が表示されなくなった。
public void Foo(string str)
{
return "foo" + str;
}
32:31
09/01/28 21:38:45
まちがえた。
public string Foo(string str)
{
return "foo" + str;
}
こうだな。
33:デフォルトの名無しさん
09/01/28 21:45:08
IValueConverter使えば?
34:31
09/01/28 22:00:39
>>33
ありがと。
でもこれで表示されないのはなんで?
35:デフォルトの名無しさん
09/01/28 22:03:38
そんなバインディングできない! 例外だ例外!
あ、例外が出たから空に置き換えときますね
36:デフォルトの名無しさん
09/01/28 22:15:23
一週間も書き込みなかったのに急に勢いづくWPF恐るべし
37:デフォルトの名無しさん
09/01/29 11:48:05
エクスプローラで"表示→アイコン"とした時の表示みたいに
・項目は水平に並べられる
・幅に収まらない場合は右端で折り返され、下に伸びていく
・画面に収まらない場合は垂直スクロールバーが表示される
という風にしたいのですが、下のようにWrapPanelを使っても折り返されず
右にどんどん伸びていって水平スクロールバーが出てしまいます。
どうすればいいのでしょうか?
<ListView Name="listView1">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
38:31
09/01/29 19:24:22
IValueConverterにコントロール自身を設定することはできない?
変換にはどうしてもコントロールにある情報が必要なんだが。
やりたいこととしては
名前とGUIDが入ったデータの配列があって、
名前をリストで表示したいんだが、
名前が同じでGUIDが違うデータがあったら後のデータを
「〜〜〜(2)」みたいなかんじで表示したい。
てかWPFって難しいな。
39:デフォルトの名無しさん
09/01/29 21:46:43
>>37
WrapPanelのWidthが指定されてないから無制限に横に広がっちゃう
ViewBaseクラスのサンプルにWrapPanelの例があるよ
>>38
ConverterParameterでパラメータ渡すとか
つかIValueConverterにDictionaryとか持たせればどうとでもなるような気がするけど
40:37
09/01/29 22:49:52
>>39
ありがとうございます。
<ListView Name="listView1">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=ScrollContentPresenter, Mode=FindAncestor}}" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
とすることでできましたが、ScrollContentPresenterというものがどっから出てきたのか分からず
ちょっとすっきりしません。
ListViewとScrollContentPresenterの関係についてはどこに書いてあるのでしょうか?
41:デフォルトの名無しさん
09/01/30 03:51:26
>>40
ListView ControlTemplate の例
URLリンク(msdn.microsoft.com)
あと、Snoop っていう WPF のツリー構造を表示するツールもあるから、検索してみると良い。
どのプロパティに値を設定すれば、どんな風になるとか、実行しながら色々試せる。
42:デフォルトの名無しさん
09/01/30 19:28:32
>>41
Snoopでツリー構造表示はすごく参考になります。
結局そのリンクにあるControlTemplateをカスタマイズする方法にしました。なんかいろいろできそうだし。
ありがとうございました。
<ListView.Template>
<ControlTemplate>
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ListView.Template>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
43:デフォルトの名無しさん
09/01/30 22:46:41
来るVS2010ではWPF Toolkitが標準になるそうだけど
今から使ってる香具師はいる?
44:デフォルトの名無しさん
09/01/30 23:01:22
WPFでリアルタイムにグラフを書かせたいのですが、どうすればいいでしょう?
グラフは
N分間の受信データをグラフに表示する
グラフにはN点で表され、それぞれの点は対応する時間(分)での最終データを表す
毎秒数回データを受信し、その都度グラフに反映する
ときどき値域が変化しその都度全体を再描画する
こういうものです
45:デフォルトの名無しさん
09/01/30 23:07:38
普通にタイマーでまわした方が妥当じゃない?
「変わったときに」と指定するなら、タイマーで前回と差が出たら〜にすればいいと思うし、
それに全体をっていうのが引っかかるけど、やっぱ作画した上から瞬間のデータを書いてやるのが一般的。
46:デフォルトの名無しさん
09/01/30 23:53:24
データの送受信タイミングを受信側が制御するならタイマー
データの送受信タイミングを送信側が制御するならコールバック
47:デフォルトの名無しさん
09/01/31 00:00:30
WPFの入門書はどれがいいでしょう?
48:デフォルトの名無しさん
09/01/31 10:58:12
ダブルパフィーの超技巧テクニック第2版中国版
49:デフォルトの名無しさん
09/01/31 11:44:26
「XAMLプログラミング」
Microsoft株式会社 川西裕幸 高橋忍 著
ISBN978-4-7973-3916-1
50:デフォルトの名無しさん
09/01/31 13:05:52
WPFエッセンシャル買ってみたけど、このフレームワークの背景とか
意味とかはふむふむと興味深い点も多かったけど、正直実践にはあまり
役立ちそうにない本だった。
51:デフォルトの名無しさん
09/01/31 14:27:01
リストビューの要素がダブルクリックされたらコマンドを実行させたくて
下記のようにスタイルを設定しようとしても、InputBindingsにsetアクセサが無いと言われます。
どうやればいいのでしょうか?
<ListView.Resources>
<Style TargetType="ListViewItem">
<Setter Property="InputBindings">
<Setter.Value>
<MouseBinding Command="ApplicationCommands.Open" MouseAction="LeftDoubleClick" />
</Setter.Value>
</Setter>
</Style>
</ListView.Resources>
52:デフォルトの名無しさん
09/01/31 15:46:20
>50
俺も読んだけど、ことWPFに関して言えば、フレームワークの背景に有る
考え方を知る事の方が重要だと思った。今までとかなり違うからね。
53:デフォルトの名無しさん
09/01/31 16:35:35
XAML、よいんだがBindingの記述とかなんか直感的じゃないんだよなぁ・・・
54:デフォルトの名無しさん
09/01/31 18:33:08
確かにエッセンシャルWPFはイマイチだった。
2005年にでたプログラミングWPFのほうがいい。(ベータ版が対象だが)
55:デフォルトの名無しさん
09/01/31 19:27:16
>>53
そもそも面倒くさいよな。
ちょっとしたことでもコンバータとか書かねばいかんことが多いように見えるし。
思ったのは、頻繁に使う一般的な数値データのバインドなら、たとえばいっそ、
xamlでデータ専用クラスみたいなのを定義できるようにして、
<Data Name="mydata">
<Int Name="d" Enum={ i0,i1,i2 } i0={ value="5" min="0" max="10"} ・・/>
<Double Name="d2" Enum={ D0,D1,D2,D3 } D0={ value="6.2" min="0" max="20.0"} ・・/>
</Data>
(つまり class Mydata { int d[3] ; double d2[4]; } と同義的なクラス。簡単なソフトならそのまま
基本変数をまとめたメインデータクラスとして使ってもいい)
などとして、
コードからは mydata.d[i0]= で値の授受が出来、
コントロールには
<Text Bind="mydata.i0">
で即ok,くらいにしてくれるといいようにも思うのだが。
56:デフォルトの名無しさん
09/02/01 00:02:07
よくわからんのだが
XAMLというのはクラスのメンバの値の設定をマークアップ言語?で記述してる
って解釈でいいの?
それ以外なにか特徴ある?
どこ見てもいきなり文法の説明っぽいのばっかりでいまだに全体像がつかめない
57:31
09/02/01 00:09:47
<Label>
<Binding>
<Binding.Converter>
<colorful:MyConverter>
<colorful:MyConverter.Data>
<Binding Path="Data">
<Binding.RelativeSource>
<RelativeSource Mode="FindAncestor" AncestorType="{x:Type UserControl}" />
</Binding.RelativeSource>
</Binding>
</colorful:MyConverter.Data>
</colorful:MyConverter>
</Binding.Converter>
</Binding>
</Label>
これで実行すると出力に
System.Windows.Data Error: 4 : Cannot find source for binding with reference
って出て、MyConverter.Dataにも値がセットされてないみたいなんだがなんか原因分かる?
上記の部分はテンプレートの一部なんだが、このテンプレートを使用してるコントロールには
依存プロパティとしてDataが定義されている。
58:デフォルトの名無しさん
09/02/01 00:38:55
>>56
すっごーく乱暴に言えばHTML/CSS+JavaScriptとXAML+C#/VB.NETで対応する感じ。
59:デフォルトの名無しさん
09/02/01 00:55:51
>>56
その解釈で合ってるよ。タグ名がクラス名に該当する。
属性がプロパティ
WPF以外のクラスも生成できる
60:デフォルトの名無しさん
09/02/01 00:59:42
コードを生成してるんじゃなくて実行時にパースしてるんだけどな
61:デフォルトの名無しさん
09/02/01 01:16:29
新しくウィンドウ作るとデフォでpublic classとして作られるんだけど
internalじゃなくてpublicなのは何か理由あるの?
62:デフォルトの名無しさん
09/02/01 01:35:06
>>51
ItemTemplateの方で記述すべきことじゃね?
>>57
そりゃConverterに先祖は存在しないだろう
63:デフォルトの名無しさん
09/02/01 02:17:07
WPFのWindowをWindows.FormsのRegionみたいに範囲を指定して穴空けたり削ったりしたいのだけど
対応するプロパティってどれでしょうか?
ClipとかVisualClipかなと思ったのだけどうまくいかなくて。
64:57
09/02/01 06:49:58
>>62
どうすればコントロールの依存プロパティにアクセスできる?
RelativeSourceについていまいち理解できてないんだが
いいサイトないかい?
65:デフォルトの名無しさん
09/02/01 11:22:56
>>64
やりたいことの大枠は分かったけど実現方法が間違ってる感じがするよ
表現したいデータとUIを説明してくれれば助言できるかもしれない
38だけじゃ抽象的過ぎる
66:57
09/02/01 13:51:08
>>65
「こんなデータも表現できるのかな」ってのをやってみただけだから
特に何か目的があって作っているわけではないんだ。
過去にC#(非WPF)の仕事で扱ったデータ構造を参考にしたんだが。
67:デフォルトの名無しさん
09/02/01 14:21:36
だから、多分表現できる、ただ表現の仕方がまずいだけだろうっていってるのよん
目的? 「こんなデータも表現できるのかな」で十分じゃん
68:デフォルトの名無しさん
09/02/01 16:10:34
つかどうでもいいって思ってるなら聞くなよ
69:デフォルトの名無しさん
09/02/01 16:11:59
もしかしてWPFってxaml使わなくてもOK?
C#だけで書けるんならそのほうがやりやすい気がするんだが
xaml使うメリットってなんなの?
70:デフォルトの名無しさん
09/02/01 16:20:12
XAML使わない方が圧倒的に面倒
試してみた俺が保証する
71:デフォルトの名無しさん
09/02/01 16:22:20
C#で書くと階層構造作るのが面倒臭すぎる
後で解読不能
72:デフォルトの名無しさん
09/02/01 16:35:53
XAMLでロジック作労とするとこれがまた面倒なんだよな・・・
73:デフォルトの名無しさん
09/02/01 17:05:34
混ぜて使うのが普通だろ。
前のスレにXMALなしのサンプルがあったが、アップローダーからは消えてるな。
HTMLをjavascript+DOMで動かすようなもの。
74:デフォルトの名無しさん
09/02/01 17:49:57
UIとロジックを徹底的に分離しようと意識して書いてみたら結構いい感じになった
ような気がする。
BindingとかStyleとかコマンドとか、理解が進むと便利な仕組みだと実感できる。
75:デフォルトの名無しさん
09/02/01 20:38:26
UIとの分離については、RoutedCommand が重要なポイントだと思う。
C#側でコマンドをずらずら書くところをもうちょっと綺麗にしたいけど。
76:デフォルトの名無しさん
09/02/01 21:43:51
xamlって、Cocoaでいうnibみたいなもん?
77:デフォルトの名無しさん
09/02/01 22:32:12
>>70,71
C#に対する利点ってどんなところ?
何が書きやすくなるの?
78:デフォルトの名無しさん
09/02/01 22:44:39
やってみればいいじゃん。
WPFはどっちのやり方も使えるように設計されている。
79:デフォルトの名無しさん
09/02/01 22:49:40
一回好きなようにXAMLで書いてみて,それをC#で書き直してみたらいい
アニメーションとか死ねる
80:デフォルトの名無しさん
09/02/02 00:29:06
画面の位置、階層構造 XAML>C#
ロジックや複雑な関係構築 XAML<C$
81:デフォルトの名無しさん
09/02/02 00:30:03
どっちもナイス VB
82:デフォルトの名無しさん
09/02/02 00:50:25
XAMLって言語なんですか?
個別に本を買って勉強した方がいいですか?
これやりたくて今C#勉強してるんですけど、道のりは長いですね
83:デフォルトの名無しさん
09/02/02 01:46:19
>XAMLって言語なんですか?
XMLベースの宣言的言語
84:デフォルトの名無しさん
09/02/02 01:58:25
別にWinFormsのような感覚でやっててもいいわけだし
85:デフォルトの名無しさん
09/02/02 02:15:21
>>82
XAML は言語といっても HTML みたいなものだから、そんなに難しくはないよ。
見たり書いたりしているうちに、すぐに慣れると思う。
86:デフォルトの名無しさん
09/02/02 03:08:29
>>85
静的なものはいいんだ
問題はバインド関係
正直リソース系のあの宣言方式はどうにかならんかったのかと
87:デフォルトの名無しさん
09/02/02 13:20:19
MouseBindingで、(None or Shift or Ctrl or Shift + Ctrl)+左クリックを表すには
4通り全て書く以外方法は無いですか?
88:デフォルトの名無しさん
09/02/02 13:52:33
そうやってROでくくってやれば1通りの書き方で収まってると思うんだけど?
89:デフォルトの名無しさん
09/02/02 14:17:35
>>88
ROって何ですか?
<MouseBinding Gesture="LeftClick" Command="Hoge" />
<MouseBinding Gesture="Shift+LeftClick" Command="Hoge" />
<MouseBinding Gesture="Ctrl+LeftClick" Command="Hoge" />
<MouseBinding Gesture="Ctrl+Shift+LeftClick" Command="Hoge" />
Gestureにどう書けばいいんでしょうか?
90:デフォルトの名無しさん
09/02/02 19:29:18
質問
XAMLの階層構造ってなんですか?
91:デフォルトの名無しさん
09/02/02 23:37:31
画面の階層構造
92:デフォルトの名無しさん
09/02/03 11:54:59
>>71
そっかなあ。HTMLドキュメントをDOMで操作すること考えたら、
アーキテクチャの設計次第では大したことないと思うが。
第一、いまどきGUIの設計はRADユーティリティ利用が当たり前で、わざわざ
コード書くバカいないだろ。windows formのときにそんなことしてた?
93:デフォルトの名無しさん
09/02/03 15:06:40
だからそのデザイナが生成するコードがC#じゃなくてXAMLになっただけだよ
Designer.csなんてちょっと複雑になると人間が読むのが難しくなるし
必要に応じて修正することもできない
94:デフォルトの名無しさん
09/02/03 15:54:12
一回デザイナのコードが壊れると、デザイナのウィンドウに
ブラウザの「ネットに繋がってません」的なコードを表示するようになる
これがコントロール関係でのエラーだと修復はほぼ不可能
95:デフォルトの名無しさん
09/02/03 16:05:19
XAMLなら言語に依存しない
VBだろうとC#だろうとIronPythonだろうと同じデザイナが使える
96:デフォルトの名無しさん
09/02/03 16:17:27
XAMLはずらっと項目が並んだプロパティウインドウをちまちまクリックするのは面倒くさいだけだと気付かせてくれた点で(作る側的に)UI革命
97:デフォルトの名無しさん
09/02/03 17:02:51
XAML採用の理由は、半分ぐらいExpression Blend用だろ。
98:デフォルトの名無しさん
09/02/03 18:24:55
Expression Blendだけ高すぎる・・・
せめてExpression Webくらいの値段にしてくれ
99:デフォルトの名無しさん
09/02/03 19:03:36
あんなもん売れても無いからそのうちVSに統合されるよ
100:デフォルトの名無しさん
09/02/03 19:46:10
URLリンク(japan.zdnet.com)
> 特にVistaに組み込まれた画像描画機能であるWPFの利用が伸び悩んでいることに触れて
自分らは使ってないくせに、どの口が言うか
101:デフォルトの名無しさん
09/02/03 19:49:25
VS2010で使われるよ
102:デフォルトの名無しさん
09/02/03 20:20:56
基本XAML無しで追加機能としてXAMLも使えるよ的に出してればもう少し使われたかも。
いきなりUIだけ別言語使えとかハードルが高すぎたんだ。
103:デフォルトの名無しさん
09/02/03 20:23:01
そもそも今まではUI作るのに開発言語なんか使えなかっただろ
いままで通りデザイナで作るのに加えて,オプションとしてXAMLを直接いじることもできるようになった
104:デフォルトの名無しさん
09/02/03 20:31:30
WPFがココまで使われないとは正直思わなかった。
おそすぎんだよな。きびきび動いてたら色々と使う所も出てきたと思うけれど。
Longhorn時代に出ていた想定アプリケーションはどこへ行った屋ら
105:デフォルトの名無しさん
09/02/03 20:33:47
>>102
昔だってダイアログはリソーススクリプトで別だったじゃないか。
まあ手書きなんてやらないけど。
106:デフォルトの名無しさん
09/02/03 21:07:31
そもそもデスクトップアプリの数が増加どころが淘汰・減少気味だからなぁ。
数だけでいえばデスクトップのWPFアプリよりもブラウザベースのSilverlightの圧勝になりそう。
機能限定とはいえOffice移植はインパクトでかいよ。
とはいえWPF製デスクトップアプリも無いわけじゃない。
Xperfは最近やたら見かけるようになってきたし。
Windows 7付属のPowerShell統合環境も確かWPF製。
MS以外だと映像系で即戦力として使われてる感じ
URLリンク(loilo.tv) とか >>6 が書いてた URLリンク(tmpgenc.pegasys-inc.com) とか
107:デフォルトの名無しさん
09/02/03 21:59:59
>>100
普及させたいならまずExpressionタダにしろよ
108:デフォルトの名無しさん
09/02/03 22:05:36
正直WPFは生産性が低い。
凝ったUIを作りこみたいときには、今までオーナードローなんかで
四苦八苦してたことから考えれば、むちゃくちゃ楽なnだけれど、
そもそも「凝ったUIを作りこみたい」という需要がほとんどないんだと
思う。
意外と便利だなと思ったのは、Expressionのプラグイン作ってみたとき。
UIをWPFのUserControlの形で渡して、INotifyChangeを実装しておくと
アプリケーション側でのユーザーの入力が簡単にわかるし、データの
やりとりはマネージ型でできるからこれまた簡単。プラグインを指定フォルダ
においとくだけでリフレクションで自動的にロードしてくれるのでインスコも
至極便利。
MSもWPF普及させたいならIEとかオフィスのIFを公開してWPFでプラグインを
簡単に作れるような実装をすればいいのにね。
IEのBHOなんてとてもいじる気になれない。なんで未だにUIがらみが
COMなんだよ。 お気に入りとかRSSのサイドパネルにカスタムのパネルを
WPFで自由に作って簡単にロードできたらWPFつかうきにもなるんだが。
どんどん作れるようにすればいいのに。
109:デフォルトの名無しさん
09/02/03 22:08:48
>>104
WindowsXPで走らせるとモッサリするからな。
WPFが増えるには、WindowsXPの比率が下がらないとね。
Beta1で評価が高いWindows7、製品版の完成度と出来映えに掛かる!
110:デフォルトの名無しさん
09/02/03 22:55:34
>>108
まぁ要するに、公開当初のコントロールが不十分で
しかもVS2008のエディタがdでも無く貧弱だった
これに尽きる
上の方でちまちまフォーカスしてプロパティ設定するより直打ちがいいとか抜かしてるのいるけど
直打ちじゃそもそもどんな属性があるのか「その場」で分からんじゃないか
とか言うと「最初にヘルプ嫁ボケ」とか言われそうだが、昔から読み辛いのに定評あるだろヘルプは
ただでさえ作法違うんだから、一目瞭然にすべきだった
111:デフォルトの名無しさん
09/02/03 23:13:57
プログラムでビットマップデータ変更すると即座に表示に反映される、ってことしたいんだけど
WPFだとどうすればいいの?
112:デフォルトの名無しさん
09/02/03 23:17:43
どのレベルで分からないのさ?
113:デフォルトの名無しさん
09/02/03 23:22:24
>>111
WriteableBitmap?とエスパーしてみる
114:デフォルトの名無しさん
09/02/03 23:26:39
WPF,xamlまださわったことないんだ
だからどのレベルといわれてもw
WriteableBitmap?ぐぐってみる、ありがとう
エスパー大好き^^
115:デフォルトの名無しさん
09/02/03 23:26:49
Dependecyつかえば?
116:デフォルトの名無しさん
09/02/04 00:12:43
Dependency?
依存関係プロパティとかいうやつですか?
勉強してみます
ありがとう
WriteableBitmap、チョイ見た感じわかりやすそうでいいですね
DirectX?やってるような気分になる
ほんとエスパー大好き^^
117:デフォルトの名無しさん
09/02/04 00:27:16
>>110
なんでMSってヘルプ作るのこんなに下手なんだろうな
118:デフォルトの名無しさん
09/02/04 00:30:09
形にこだわってるという印象がある
体裁ととのってればよし、みたいな
119:デフォルトの名無しさん
09/02/04 01:50:23
伸びてると思ったらこれか!
120:デフォルトの名無しさん
09/02/04 16:56:24
>110
xaml直打ちはありえんな。今時ウェブデザイナでもそんなことはせん。
そもそも「UIとロジックの分離」ってのが胡散臭すぎる。
ウェブの世界では確かにUIはデザイナが作ってるけど、そもそも商用パッケージ
製品でもない限り、デスクトップアプリケーションの世界UIデザインとロジックを分
離して別々の間が作るなんてあり得ない絵ゾラごとだとおもう。
xamlはxbapとかsilverlight専用でいいよ。
121:デフォルトの名無しさん
09/02/04 20:45:21
>>117
osx になってから、Appleの開発者サイトは見やすくなった。
122:デフォルトの名無しさん
09/02/04 20:48:34
>>117
互換性ってのを気にしてるんじゃない?
Macはそこらへん無視だから作り直したりできるけど、MSは数十年前からの積み重ねだから自由が利かないんじゃない?
123:デフォルトの名無しさん
09/02/04 21:17:40
>>120
多人数開発が当たり前のデスクトップアプリケーションで、UIとロジックをろくに分離せずに開発するとか完全に死亡フラグ
124:デフォルトの名無しさん
09/02/04 22:25:43
>>123
画面設計とバックエンドを分離することはあるが、UIと「UIにまつわる」ロジックを
分離するなんてありえんだろ。
125:デフォルトの名無しさん
09/02/04 23:01:33
>>124
モデル部、モデル部と連携するUIイベントハンドリングと相互作用、UIでの表示とイベント操作を行うコントロールは分離可能。
WPFでのXAMLは2と3の分離
126:デフォルトの名無しさん
09/02/05 08:27:38
>>125
MVCの役割をキチンと分離して見通しがよく、相互に影響の少ない
プログラミングを、なーんて話と、実際にを分離・分業で作成して
うまくいくかどうかって話はべつもんだろ。
UIの入出力なんてそもそも不可分いったい何だから、「分けましょう」
なんて教条主義ふりかざしたところでうまくいかんものはいかん。
デザインがプログラミングとは別に意味を持つwebの世界ならともかく、
デスクトップアプリケーションでV,C分離して分業する意味もないし、
そんなことして品質と生産性が保てるとは思えん。
理想論としては分業しなくても極力見通しよく設計する方がいいのは
確かだけれど、
・分業するためにはVCをきっちり分離しておかないと という話と
・分業も必要ないのに VCをがちがちに分けすぎたものが果たして
使いやすいのか? という話を混同してない?
127:デフォルトの名無しさん
09/02/05 08:56:36
>>126
いや、業務アプリでも捨てコードとかでないならきっちりやっとくべきだと思うけどね。
動かしたあととかに色々変えてくれとか言うものも出てくるはず。その中にはきちんと分離しておけばZAMLレベルの修正で住むものも宅差なると思われ。
ドメインモデルとのやりとりはUIの中のVからはやったらあかん。
128:デフォルトの名無しさん
09/02/05 11:04:03
>>127
ごめん、俺の論点の出し方がわかりにくかったかも。
・どんなプログラムでもMVCを疎な設計にしておくべし → 同意
・M,V,Cを分業して別々な人が設計するならMVCの分離は必須 → 激しく同意
ところが上二つから
・V,Cは別々の人が設計すべき→・だからXAMLがいいんだ
という話にはつながらないはず。
分業はほんらいできればしたくないんだよ。究極には一人の人が設計から
実装まで完結できればそれが一番品質も、生産性も高いと思う。
ところが現代の大規模システムではそんなのとうてい無理だし、ウェブ系の
アプリケーションのようにデザインが重視される世界ではそもそもプログラマに
そのスキルがないから、「仕方なく」分業するわけだ。
XAMLは、その「仕方なく」の世界のために作り出されたものだから、別に
そんな必要のないときに使うと 使いにくいものになっているってのが俺の持論。
だいたい、UI設計の分離といっても、ちょっとした振る舞いやレイアウトの変更
程度なら確かに"XAMLレベルの修正ですむ"ケースもあるだろうけれど、
現実のプロジェクトではそんなことあり得ない。 これはMVCモデルのせいじゃ
なくて、 何をしたいのかよくわかってない糞ユーザーと、いつまでも
要件も仕様も凍結できず工程がぐだぐだの腐ったプロジェクトマネージメントの
せいだが…。
MVCモデル開発が仕様変更に強いというのは嘘だと思う。仕様がキチンと確定
していれば、MVCをキチンと分離した設計によって、効率的な分業が可能
というのが正しいのではと思う。
少なくとも現実に目を向ける限り、分離が可能なのは実はVとCじゃなくて
"Look"とVCだと思うんだよなぁ。。。"Look”のためだけならXAMLもあながち
悪くはないと思うが…。
129:デフォルトの名無しさん
09/02/05 16:13:42
>・V,Cは別々の人が設計すべき→・だからXAMLがいいんだ
これが違うというのは同意。また分業しないほうがよいというのも同意。
でも仕様が不明確で肯定がグダグダになるのとMVCなどで分離するかどうかはまた別のはなしかと。
どうせ全員一致のMVCの定義すらないわけだしそこらへんの言葉遊びしても意味ないかと。
WinFormsよりはWPFのほうがいずれにしてもUIとモデル部などを分離しやすいのは確かだし。
仮に分業目的でなくてもWPFでの分離の仕方はそれなりにいいと思う。その手段としてXAMLがあるわけだが、それは必須条件じゃないし。
130:デフォルトの名無しさん
09/02/05 16:40:28
URLリンク(quince.infragistics.com)
ここ面白いな
131:デフォルトの名無しさん
09/02/05 17:19:19
>>130
かなり面白いな。
どっかにサンプルソースがないのかねぇ…。みつけられんかった。
132:デフォルトの名無しさん
09/02/05 21:32:15
>>130
愛用のoperaじゃぴくりともう五課ねぇ・・・
133:デフォルトの名無しさん
09/02/05 21:43:06
>>132
さぁ、Opera 10 alphaを入れるんだ
134:デフォルトの名無しさん
09/02/05 23:09:02
>>130
何が面白いんだよ馬鹿しかもSilverlightだからスレ違いだろボケ
135:デフォルトの名無しさん
09/02/05 23:25:41
見たけどページはSilverlightだけど中身はWPFじゃん
HTMLはスレ違いとかならかわいげがあるが
136:デフォルトの名無しさん
09/02/05 23:37:06
両方あるんだけど、、、
137:デフォルトの名無しさん
09/02/06 00:02:56
ソースもあれば最高なんだけどな
138:デフォルトの名無しさん
09/02/06 14:19:44
VirtualizedWrapPanelが無いのはなぜなんだ…
139:デフォルトの名無しさん
09/02/06 14:32:06
僕らが車輪の新生産を出来るように。
140:デフォルトの名無しさん
09/02/06 21:40:48
StackPanelは画面内に収めるのが普通だから
141:デフォルトの名無しさん
09/02/07 03:47:15
System.Windows.FormsのLocationに相当するものはWPFのコントロールにはないの?
142:デフォルトの名無しさん
09/02/07 04:43:18
Canvas
143:デフォルトの名無しさん
09/02/07 12:58:41
WPFにもなってLocationなんて指定する奴はWPFの存在意義がわかってない
144:デフォルトの名無しさん
09/02/07 13:06:59
XAMLでブール値を設定するにはどうしたらいい?
〜〜〜="True"
じゃぁ文字列になってしまう。
145:デフォルトの名無しさん
09/02/07 15:16:51
WPFってエフェクトさえ使わなければ軽い気がしてきた
146:デフォルトの名無しさん
09/02/07 15:48:49
3.5はシェーダ使うようになったからエフェクト軽くなったらしいけど
147:デフォルトの名無しさん
09/02/07 19:15:47
>>142
ありがとう
>>143
なんで聞いてるか理解できないならどっかいけ
148:デフォルトの名無しさん
09/02/08 12:33:47
>>144
プロパティの型がBooleanならそれで通る
ContentみたいにObject型の場合は,ルート要素で
xmlns:sys="clr-namespace:System;assembly=mscorlib"
とした上で
<Button><Button.Content><sys:Boolean>True</sys:Boolean></Button.Content></Button>
149:デフォルトの名無しさん
09/02/08 18:40:59
ウィンドウの大きさを変化させたとき
右下に配置したボタンがずっと右下にあるようにするにはどう設定すればいいですか?
150:デフォルトの名無しさん
09/02/08 22:33:09
Grid使うとか,DockPanelで下にStackPanel { FlowDirection = LeftToRight }配置してその中に入れるとか
WinFormsのDockみたいな考え方はしない
151:デフォルトの名無しさん
09/02/08 22:36:55
間違えたRightToLeftだった
152:デフォルトの名無しさん
09/02/09 00:45:24
>>149
VerticalAlighnment="Bottom", "HorizontalAlignment="Right"
じゃだめなの?
153:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/09 01:00:58
>>149 だった訂正
155:デフォルトの名無しさん
09/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でやる
サンプルプログラムを
URLリンク(www.mperfect.net)
で公開したんだ。
俺はこれは使える!と思ったんだけど、brains-N-brawnさんのコードはARToolkitPlusの
色々な機能を試していて軽量なサンプルとは言い難い物だった。それで、自分でARToolkitPlus+DirectShow.NET+WPFの組み合わせの最低限の内容を持って十分に整理された
スケルトンコードを書いてみた。こいつは特別なライブラリを導入しなくてもVisual C# 2008
のみでビルド可能でしかも3D部分はWPFだし、WPFだからGUIとの連携も容易だしで、
これからARを始めようとする人にはサンプルとして比較的向いているかもしれないと思う。
そんなわけでコードは
URLリンク(sites.google.com)
ここに置いてある。あと、URLリンク(www.nicovideo.jp)にデモ動画を
アップしてみたけど、ミクさんとかの面白いネタがあるわけじゃない。
ニッチ市場向けの内容なのに長文ですまない。せっかくだから誰かが活用してくれるとうれしい。
156:デフォルトの名無しさん
09/02/09 12:31:01
>>150,151,153,154
ありがとうございます
Dock、Dockの階層化でやってみて所望の動作ができることを確認しました
>>152
やってみ
157:デフォルトの名無しさん
09/02/09 15:36:09
>>156
152です。
<Window x:Class="WpfApplication1.Window1"
xmlns="URLリンク(schemas.microsoft.com)"
xmlns:x="URLリンク(schemas.microsoft.com)"
Title="Window1" Height="300" Width="300">
<Button Width="120" Height="80"
HorizontalAlignment="Right" VerticalAlignment="Bottom"
Margin="0,0,10,10">Button</Button>
</Window>
じゃ駄目なの?と思ったんだけど、実際にはほかのコントロールも配置するんだから
実際にこんなコードにはしないね、確かに。
158:デフォルトの名無しさん
09/02/09 18:56:36
>>117
なんでTipsみたいなものをもっと大量に用意しないんだろうな。
ネットであさったりあれこれ実験したり、(それこそこういうとこで聞いたり)に
多くの人間がどれだけ無用な時間を取られていることか。
割く人員が少ない(天下のMS様だがそういう金はなぜかない)とでもいうのなら、例えば適当な学生を複数雇って、
よくあるタイプのフリーソフトを指定して(この「ちょっと高機能な関数電卓ソフト」の類似品を1からWPFで作ってみてくれ)
わかりにくかった点はどこで、どう解決したのレポートを書かせて、
適当にリライトしてアップすればいい。
「ただでも習得しようと思っていたところ」だというので、
1本十万円とか1ページ1万円くらいでバイトとして喜んでやる奴幾らでもいるだろう。
節約したいならインドあたりの工科大の学生とかでいいわけで。
「WPFでこれらの見た目も機能もカラフルな数々の便利ソフトがすぐ出来ます。
全ソースと整理されたわかりやすい解説はこちらのページ群をご参照」
使う気になる人間・会社、ぐっと増えるんじゃないんだろうか。
そういうことをほとんどせず>>100
159:デフォルトの名無しさん
09/02/09 19:10:27
金というか資本主義じゃなかったら今だにマンモス狩ってるだろjk
160:デフォルトの名無しさん
09/02/09 19:16:25
技術オタク万歳
ゲーム廃人よりたちが悪い。
そこに付け込んだのがWPF
つかわなきゃいいだけ
161:デフォルトの名無しさん
09/02/09 20:53:10
今日、渋谷の書店でWPFの書籍を買おうとした
かなり品ぞろえが悪かった(3,4冊くらいしかなかった)
WPF大丈夫なのか?
不安になって本買うのやめた
162:デフォルトの名無しさん
09/02/09 21:10:00
まずは、WPFのなんたるかから勉強しろ。
哲学みたいなもんだ
163:デフォルトの名無しさん
09/02/09 21:30:56
>>158 とか >>160-161 みたいのは、PHPやRubyだけやってればいいと思うよ。いやマジで。
164:デフォルトの名無しさん
09/02/09 21:34:08
本買わなかっただけでその仕打ちorz
165:デフォルトの名無しさん
09/02/09 22:09:11
いいんじゃん自分だけわかるみたいなこと言わせておけば
使う人少なければ開発続かないだけだし
166:デフォルトの名無しさん
09/02/09 22:37:20
デスクトップUIの技術自体がもうそれほど重要視されない時代で、なおかつ、
MS系技術がやたらめったら嫌われる傾向の日本では、今後も流行ることないから、
日本語ドキュメントが山ほどあるみんなが使っているものを触らないと落ち着かない人であるとか、
マイナーなものに手を付けることを、今後(その技術のエッセンスがどっかで生き残るだけじゃなくて)
その製品自体が普及するか否かだけで不安になる人は、来ないほうがいいよと言ってあげただけ。
167:デフォルトの名無しさん
09/02/09 22:44:29
サンプル山ほどあるだろ
168:デフォルトの名無しさん
09/02/09 22:49:57
ほんとその通り。
UI技術に投資するなんて無駄なだけ。
もっとやるべきことがある
169:デフォルトの名無しさん
09/02/09 23:24:52
勉強すればいいと思ってる馬鹿は大抵学歴が高い傾向にある
本質がわからない。辿りつけない層であり、GDPを上げるために仕込まれた人口比率の最も多い層でもある
プログラミングすらしないで目的を達成させることのほうが大事
お前の言っているやるべきこともたぶん糞
170:デフォルトの名無しさん
09/02/09 23:36:27
>プログラミングすらしないで目的を達成させることのほうが大事
そりゃそうだが、プログラミングする以上はちゃんと勉強しろよ
171:デフォルトの名無しさん
09/02/09 23:46:35
軍事技術が優先だったけど今はそいつらが集まって自動でアプリケーションを作りだす人工知能の開発に本気になってるから
それまで待ってろ。もう50年もすれば人がいらなくなる
172:デフォルトの名無しさん
09/02/09 23:51:36
>>171
その頃ロシアでは ウォッカの生成方法を考えるAIの研究をしていた
173:デフォルトの名無しさん
09/02/10 00:41:09
>>171
未来の二つの顔だな
あれの中ではナイスなAIのおかげで皆働かなくてよくなったとなってたが、もし実現しタラ超格差になるだけのような気がする。
174:デフォルトの名無しさん
09/02/10 01:08:05
俺はWPFに賭ける
今すごい使い方を編み出せばMSからMVPをもらえるかも知れん
やってやるぜ
175:デフォルトの名無しさん
09/02/10 01:18:21
>>174
釣り針垂らしてスレチの阿呆に餌を与えようとするなw
176:デフォルトの名無しさん
09/02/10 08:14:56
>>155です。
せっかくなのでARToolkit+DShowNET+WPFでミクさんネタもやってみました。
まあ、このネタはもうやりつくされた感がありますが。ミクさんxamlにしたよー。疲れた。
URLリンク(www.nicovideo.jp)
URLリンク(sites.google.com) (コード)
UIとかあんまり関係ないプログラムになっているけれど、WPFってUIのフレームワーク
なのにビットマップエフェクトと3Dを宣伝文句にする姑息な事してきたわけだから、
3D描画に酷使してやれば本望だと。それに前にも書いたけど本家ARToolkitがGLUT
べったりなのに対してWPFを使っているのでこのコードをスケルトンとして作ったプログラム
ではバインディングなどのWPFの恩恵を受け易い。・・・はず。
177:デフォルトの名無しさん
09/02/10 22:40:41
CAG for WPF 日本語版出てたのね。
URLリンク(msdn.microsoft.com)
178:デフォルトの名無しさん
09/02/10 22:54:52
WriteableBitmapとBitmapなにがちがうですか?
179:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/12 04:21:50
>>179にレスが付かなくて(179は俺ね)連投みたいになってもうしわけないんだが、
Storyboardを使ってミクさんをアニメーションさせたので、またコードと動画を貼っておく。
URLリンク(sites.google.com)
URLリンク(www.nicovideo.jp)
URLリンク(www.nicovideo.jp)
WPFって一応今の流行だと思うんだけど、何でこんなに過疎ってるの?
181:デフォルトの名無しさん
09/02/12 04:54:52
必ずしも必要なものが出現するとは限らない
社員を遊ばせておくぐらいなら何かを作らせた方がいいという時だってある
Vista、C#、WPFなんかがそれに当てはまる。
182:デフォルトの名無しさん
09/02/12 07:14:01
>180
これって、描画領域になんか重ねたりとかも出来るの?
183:デフォルトの名無しさん
09/02/12 07:31:00
>>182
Canvasの上にViewport3Dという構成だからCanvasに重ね描きするかその上に別のコンテナを乗っけてViewport3DとZオーダーを調節すれば良いんじゃない?ソースあるから適当にいじってみて。
184:デフォルトの名無しさん
09/02/12 11:19:15
visual studioで app.xamlのstartupUriに指定されたウィンドウのxamlファイルの
ファイル名を変更しても、リファクタが効かず、毎回手で変更しないといけない
のですが、これってバグですか?
ファイル名ではなくクラス名としてのwindow1の名を変更したときにはちゃんと
xamlにも変更を反映してくれるので、技術的な問題と言うよりも、忘れられちゃった
としか思えないんですが。
みなさん、デフォルトの"window1.xaml"のまま使っているんでしょうか?
185:デフォルトの名無しさん
09/02/12 11:27:29
>184
C#の仕様上はファイル名と中のクラスには何の関係もないんだから、
中に記述されていうクラスのクラス名を変えないとリファクタリングは
効かないに決まっている。ただ、その場合もxamlの記述までは置換され
なかったような記憶があるけれど。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4879日前に更新/183 KB
担当:undef