WPF(XAML,XBAP,.NET3. ..
[2ch|▼Menu]
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の記述までは置換され
なかったような記憶があるけれど。

186:デフォルトの名無しさん
09/02/12 11:28:30
185です。
>>184
あ、その場合にはうまく行くのね。

187:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/12 13:13:04
SuspendLayout, ResumeLayout, Invoke, Refresh, Update, Invalidatedと等価なのは何でしょう?

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

190:デフォルトの名無しさん
09/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
09/02/12 16:49:52
自己解決しました。

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

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

194:デフォルトの名無しさん
09/02/12 17:14:34
URLリンク(msdn.microsoft.com)

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

196:デフォルトの名無しさん
09/02/13 00:33:09
SendToBackってどうすればいいですか?

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

198:デフォルトの名無しさん
09/02/13 06:29:43
ない

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

URLリンク(headlines.yahoo.co.jp)

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

200:デフォルトの名無しさん
09/02/13 21:15:54
まじかああああああああああああ
ついにきたあああああああああああああ

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


ついでにこれ貼っておきますね
URLリンク(japan.zdnet.com)

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

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

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

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

205:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/14 11:49:00
エラー文抜き出して検索すれば早いだろうに。
URLリンク(detail.chiebukuro.yahoo.co.jp)
それにスレチな。

207:デフォルトの名無しさん
09/02/14 13:05:02
>>204

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

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

208:デフォルトの名無しさん
09/02/14 13:22:51
>>206
それはもうやりました・・

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

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

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

211:デフォルトの名無しさん
09/02/15 15:59:42
URLリンク(msdn.microsoft.com)(VS.95).aspx
このプロパティに、TemplateプロパティにListboxItemをターゲットとするコントロールテンプレートを割り当てるSetterを含むスタイルを与えてやればよい、と思う。そのコントロールテンプレートの中でTriggerを設定するのね。

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

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

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

213:デフォルトの名無しさん
09/02/15 16:18:26
>>211,212
試してみる。ありがとー

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

215:211
09/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
09/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
09/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:デフォルトの名無しさん
09/02/16 00:55:57
リアルタイムで受信したデータに応じて色々表示変えたいんだが、データに応じてUIElementを色々入れ替えたりすると言うことでよいのかな?Rectangleの色だけを変えるとかってできましたっけ?

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

220:デフォルトの名無しさん
09/02/16 13:03:24
一般論として最適化はされているみたいだね。

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

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

チートっぽいけどこれ?

222:デフォルトの名無しさん
09/02/16 19:10:53
>>218
Rectangle.Fill変更すれば変わるっしょ

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

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

225:デフォルトの名無しさん
09/02/17 18:01:40
WPFでアンチエイリアシングを無効にする方法
URLリンク(blogs.msdn.com)
>これを無効にするには、RenderOptions.EdgeMode="Aliased" を使います。

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

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

227:デフォルトの名無しさん
09/02/17 18:37:37
気になっちゃうんだもん・・・ WindowsFormsHost 使えばいいんだけどさ

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

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

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

231:デフォルトの名無しさん
09/02/17 20:19:01
URLリンク(blogs.msdn.com)
ここからダウンロードできる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は
URLリンク(msdn.microsoft.com)
から手に入るみたい。

232:デフォルトの名無しさん
09/02/17 20:29:19
idlがあるならmidl.exeとtlbimp.exeでdll作れよ

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

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

234:デフォルトの名無しさん
09/02/17 21:44:31
>>224
殺しちゃうのかよw

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

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


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

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

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


237:デフォルトの名無しさん
09/02/17 22:54:21
画像にじゃなくて画像ファイルに?

238:デフォルトの名無しさん
09/02/17 22:56:16
画像に、です
すいません

239:デフォルトの名無しさん
09/02/17 23:02:28
>>235
HorizontalOffset/VerticalOffsetとScrollableWidth/ScrollableHeight

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

241:デフォルトの名無しさん
09/02/17 23:09:31
Canvas使うとかAdorner使うとか色々あるぜ

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

243:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/02/17 23:26:56
>>242
ImageDrawingは?
何をもって最終とするのか知らんが

245:242
09/02/17 23:30:47
元の画像に文字を合成したImageSourceを得たいんでしょ
その完成したImageSourceを作る段階

246:>>189
09/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:デフォルトの名無しさん
09/02/17 23:32:07
>>246
コレハンミスです。

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

248:236
09/02/18 00:01:49
RenderTargetBitmap でいけそうです。
ありがとうございました。

>>245
そのとおりです。

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

249:244
09/02/18 00:08:35
DrawingImageだった 名前が紛らわしいよまったく

250:デフォルトの名無しさん
09/02/18 00:23:35
DrawingImageは保存できなくね?

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

252:デフォルトの名無しさん
09/02/18 00:37:56
保存は条件じゃないっしょ

253:デフォルトの名無しさん
09/02/18 03:22:56
コードでResourcesを設定して、XAMLからStaticResourceとして読み込んでいるんだけど
デザイナ側はコードで設定される事を知らないので
>読み込みで問題が発生しました
>デザイナを読み込む前に修正しなければならないエラーがドキュメントに含まれています。エラーを修正してからデザイナを再度読み込んでください。
と言われてデザイナが読み込まれない。

このケースだとXAMLでリソースを定義してDynamicResourceとして読み込ませておいて、InitializeComponent後に設定するのが正攻法だと思うけど
<Window.Resources>
  <app:Test x:Key="Test"/>
<Window.Resources>
この定義方法だと、勝手にインスタンス作ろうとして引数0のコンストラクタがないとエラーになってしまう。

デザイナにコード側で設定されるって事を教えるにはどうすべきなのでしょうか。

254:デフォルトの名無しさん
09/02/18 09:30:38
ObjectDataProvider使えばコンストラクタに引数渡したり、メソッドの結果にバインドできるのか。

255:231
09/02/18 12:53:18
>232さんの助言のお陰で、わりと上手く行っています。Adam Nahanさんからの返信はまだ
ありませんが、どうやら自力でできそうです。>232さん、ありがとうございました。

256:デフォルトの名無しさん
09/02/18 13:11:13
WPFでGDI風にテキスト書かせたりするのはどうすればいいですか?
ちなみにxamlはつかってません
C#でしこしこ書いてます

257:デフォルトの名無しさん
09/02/18 13:21:49
コンテキスト.DrawString("a")みたいなの?
OnRenderをオーバーライドすればそれっぽいことができるけど激しく非推奨
要素を置いていくだけで同じことできるしパフォーマンスも良くないし何よりWPFらしくない

258:デフォルトの名無しさん
09/02/18 13:25:51
初心者でよくわかってないんです
どうすればいいでしょう?
データ更新が多いのでできるだけ早く描画したいのですが

259:デフォルトの名無しさん
09/02/18 13:31:38
頻繁にOnRenderで更新するのは最悪
普通に要素を置いていったあとはそれらのプロパティの変更だけですませて
できるだけ要素の入れ替えは行わない
画面に表示するだけならDrawing系の要素を使うと軽い

260:デフォルトの名無しさん
09/02/18 13:41:41
うー
Drawing系の要素って何?orz

261:デフォルトの名無しさん
09/02/18 13:47:07
URLリンク(msdn.microsoft.com)
このへん読め
理解できないなら理解できるようになってから気にすればいい

262:>>243
09/02/18 15:42:07
何の参考にもならないと思いますが、何とか希望通りの動きをするようになったのでメモしておきます。

<Window.Resources>
<ControlTemplate x:Key="RadioButtonControlTemplate1" TargetType="{x:Type RadioButton}">
<StackPanel>
<Label Content="{Binding RelativeSource={RelativeSource AncestorType={x:Type RadioButton}}, Path=IsChecked}" />
</StackPanel>
</ControlTemplate>
</Window.Resources>
<StackPanel x:Name="LayoutRoot" VerticalAlignment="Center" HorizontalAlignment="Center">
<RadioButton Content="RadioButton" Template="{DynamicResource RadioButtonControlTemplate1}" />
<RadioButton Content="RadioButton" Template="{DynamicResource RadioButtonControlTemplate1}" IsChecked="True" x:Name="radioButton" />
</StackPanel>

263:デフォルトの名無しさん
09/02/18 15:42:50
わからん
Drawing系の要素、なんて言葉どこにもでてこない
textBlockとかいうのつかったほうがはやいってことか?

264:デフォルトの名無しさん
09/02/18 15:47:13
System.Windows.Media.Drawingクラス(の派生クラス)
画面に描画するにはDrawingVisualを使う

265:235
09/02/18 18:03:32
>239
レスありがとうございます。
各プロパティで試してみたのですが、うまくいかない原因は別にあったようです。
実際にスクロールバーの制御をおこなうときに、スクロールバーが表示されていなかったという
何ともお粗末な原因でした。
穴があったら入ってゆっくり眠りたい気持ちです。


266:デフォルトの名無しさん
09/02/18 23:41:20
なんでwpfのスレが伸びまくるんだろうか?


267:デフォルトの名無しさん
09/02/19 00:04:13
いいドキュメントがないから

268:デフォルトの名無しさん
09/02/19 02:58:30
本もほとんどないしな

269:デフォルトの名無しさん
09/02/19 10:17:53
決定版が一冊出ればそれでいいんだけどな

270:デフォルトの名無しさん
09/02/19 15:11:22
決定版ドキュメントが一冊出れば飛び付くんだが、最近の有力なエンジニアは
自ブログの充実ばかりで、書籍の執筆熱が冷めている上に、インターネットに
押されている出版社も支援が薄い。

出し惜しみ+買い控えの無限ループ → 書籍出版の衰退

271:>>189
09/02/19 15:58:19
Blendが自動でコード補助とかしてくれたらわかるけど、ヒントすら出てくれないからヘコしんどい

272:デフォルトの名無しさん
09/02/19 16:16:14
MSDNが使いづらい
探したいものがあって検索してもなかなか見つからない
数十分かけてやっと見つかったと思ったら大雑把にしか書いてなくて迷うこともある

>>271
ヒントでねーわ選択画面ねーわで結局本片手にやるはめになるよな

273:デフォルトの名無しさん
09/02/19 16:20:57
IntelliSenseが最強の教師って状況はおかしいよな。

274:デフォルトの名無しさん
09/02/19 21:38:21
Silverlightのドキュメントなんかもっと酷いよ

275:デフォルトの名無しさん
09/02/19 22:10:32
MSDNで直接探すのは、どこに書いてあるか見当がつく場合ぐらいだなぁ
特定のクラスについて調べたいとか、この辺に探してるやつがある筈 と思う時ぐらい

調べる対象が漠然としてる時は、ググった方が早いね。

276:デフォルトの名無しさん
09/02/19 22:43:21
>>275
クラス名でググった方が早くね?
URLリンク(www.google.co.jp)

277:デフォルトの名無しさん
09/02/19 23:48:27
WPFをMicrosoft Blendで作るのと、Visual Studioで作るのって何が違うの?
分裂したメリット、デメリットが判らない。

自分的にはVisual Studioではコード候補が出るから何とかなる気もする、
Blendは即コンパイル。
こんな感じ?

278:デフォルトの名無しさん
09/02/20 00:06:39
プログラマーとデザイナーが同時に作業できるようにってことだったと思うけど
タダで配るならともかくこれは完全に失敗だよな

279:デフォルトの名無しさん
09/02/20 01:18:31
Blendがもっと手軽にコントロールテンプレートを弄り倒せるツールだったらヤル気がでた。

280:デフォルトの名無しさん
09/02/20 01:28:46
>>277
多分Blendに存在価値がないのが問題
どう見たってプログラム素人が手ェ出せるUIじゃないだろ・・・

281:デフォルトの名無しさん
09/02/20 02:25:33
>>280
xamlを意識しなければそれなりに使えそうだけどなぁ
ただ、デザイナじゃないからblendは使いこなせなかったけどw
とりあえず、フォーカスするとキモい挙動をする(グラデーションが動く)ボタンなら簡単に量産できると思う。
(センスのない自分が嫌になれるよ!)

282:デフォルトの名無しさん
09/02/20 07:43:01
色とかかえたりするにはまぁいいんだけどね・・・
何つーかもうちょっと全体的に使いやすくなって欲しいんだよなぁ
FLASH用のツール作ってた人なんだろ、これ作ったの。


283:デフォルトの名無しさん
09/02/20 08:52:06
xamlとC#の変換ツールないですか?
いきなりxaml使えといわれても何やってるのかよくわからないものは気持ち悪くてさわれない

284:デフォルトの名無しさん
09/02/20 09:37:19
>>283
それを言うならxamlとC++の変換じゃないの?
C#から使うものだけど実装自体をC#でやってるわけじゃなかろう。

俺は詳しくないからxamlをパースしたあとC#に変換しているのか
C++で直接動かしているのか詳しくは知らないが、
283はC#のメモリ管理が内部で何やってるかわからんから気持ち悪いとか言って
わざわざC++で書いたりするわけじゃないんだろう?

ああいう記法でラッピングした以上制約が色々あるから気になるならWindowsFormでやればいいし
そこまで潔癖に気にするやつが使う代物でもないと思う。

285:デフォルトの名無しさん
09/02/20 10:11:12
むしろaspxだろうJK

286:デフォルトの名無しさん
09/02/20 13:02:03
>>284
これはひどい

> C#のメモリ管理が内部で何やってるかわからんから気持ち悪いとか言って
CGの動作原理を理解すれば気持ち悪くなくなる

同様に、XAMLとC#の対応関係を理解すれば、XAMLに対する気持ち悪さも消えるだろう

対応関係はDependencyPropertyの解説などを見れば、だんだんわかってくるが、
てっとり早く理解する為に変換ツールが欲しくなるのも理解できる

けど、変換ツールは見たことないな
ライブラリはXAMLをパースして、(ILを出力せずに)直接オブジェクトを生成しちゃってるし

287:デフォルトの名無しさん
09/02/20 13:53:48
XAMLがC#のコードとして表示されてるのを見たことある気がするんだが、
VisualStudioにそういう機能なかったっけ?

288:デフォルトの名無しさん
09/02/20 14:08:35
アプリケーション定義のxamlならobjフォルダにC#コードが出力されるけど。

289:デフォルトの名無しさん
09/02/20 14:15:58
<x:Code>
```
</x:Code>
のことを言ってたりする?
これならXAMLの中にそのまま記述できるけど?

290:デフォルトの名無しさん
09/02/20 14:34:26
>>288
ああ、それだった。たいした情報はないのな。

291:デフォルトの名無しさん
09/02/20 16:03:42
>290
StartupUriのxamlをフレームワークのAPI使ってロードするだけのコードだからね。

292:デフォルトの名無しさん
09/02/20 21:04:52
>>283はXAMLがどうC#と関連づけられるか分からないから気持ち悪いと言っているんであって、
>>284が言うようなC#のメモリ管理なんて言ってないだろうが。

XAMLで書けることはC#で書けるんだから、C#がわかるなら気持ち悪いなんて事は無いだろうに。

293:284
09/02/20 22:05:03
すまん、俺がボケかましてただけだった。
milcore直接たたいてるのはWPFでXAMLじゃなかったわな。
直接たたいてるとしたらアンマネージドだからああいう物言いになったと。

メモリ管理どーのってのはあくまでも例え。286は例えとわかってくれているが292には通じんかったようだ。
GCは挙動わかっててさえ気持ち悪いとか非効率とかよく言われるものなのに、
まずGC積んでるC#自体を気持ち悪がらないのにXAML程度を気持ち悪がる理由がわからんって事。
例え悪くてすまんな、低脳なんで。

ただ、XAMLで書けることはC#で書けるというのは大抵書いてあることだけど
そのままパースして翻訳されてると俺は思ってないし、
そう考えると実際に内部で何やられてるかわからんと言う意味で
283が気持ち悪がってるのかなとは思い直した。

294:デフォルトの名無しさん
09/02/20 22:12:51
milcoreは最終的な一番低いレベルの描画に使ってるだけ
XAMLをパースしてるのはフレームワークのマネージコード

295:デフォルトの名無しさん
09/02/20 22:20:51
WPFは最終的な描画以外は全部C#で書かれてるよ
SilverlightはアンマネージC++にごくごく薄いマネージドの皮をかぶせただけ

296:デフォルトの名無しさん
09/02/20 22:28:05
>>294,295
把握した。

297:デフォルトの名無しさん
09/02/21 00:04:48
マイクロソフトの人がこのスレみて反省してくれればいいのだが

298:デフォルトの名無しさん
09/02/21 01:52:02
マネージからmilcoreたたければなー


299:デフォルトの名無しさん
09/02/21 09:39:09
299

300:デフォルトの名無しさん
09/02/21 09:39:45
300

301:デフォルトの名無しさん
09/02/22 22:20:19
Dispatcher.InvokeするとTargetInvocationExceptionが起きるんですが、どうすれば回避できるのでしょう?

302:デフォルトの名無しさん
09/02/22 22:25:45
中身(InnerException)は?

303:デフォルトの名無しさん
09/02/22 22:27:50
ごめんなさい、知識なさ過ぎて答えられません
InnerExceptionとは何でしょう?

304:デフォルトの名無しさん
09/02/22 22:48:19
ああ、TargetInvocationExceptionっていうのは呼び出した先でエラーが起きてるってことなのですか?
検索してもさっぱりわかりませんでした
それでは調べてみようと呼びだしてるメソッドの中身をtry catchで囲んでみたらなぜかエラーが起きなくなりました
なにがおきてるんでしょう?

305:デフォルトの名無しさん
09/02/22 22:56:08
try{
ほにゃらら
}catch(Exception e){
MessageBox.Show(e.InnerException.ToString());
}
してみたら?ていうか、キャッチしなかった場合にデバッグ環境で表示されるダイアログでも
InnerExceptionは見れるけど。

306:デフォルトの名無しさん
09/02/22 22:58:33
ごめんなさい、エラーおきてました
時間なくてあせってて
原因もわかりました
お騒がせしました
お付き合いありがとうございました
では

307:デフォルトの名無しさん
09/02/22 23:14:02
e.ToString() したら InnerException も連鎖的に出してくれたような

308:デフォルトの名無しさん
09/02/22 23:23:18
TargetInvocationExceptionが起きると出してくれないんですよ
だから何が起きてるのかさっぱりわからなくてパニくりました
はずかしい

309:デフォルトの名無しさん
09/02/23 01:12:03
違うスレッドで起きてる例外だからスタックトレースとしては連続してないってだけだろ。
ちゃんと例外の発生したスレッドというかメインスレッド側で処理しておけ。

310:デフォルトの名無しさん
09/02/23 11:55:11
Blendがうんこ過ぎてメモ帳以下ですが、私の使い方が間違っているものだと思うので質問します。

BlendでBindingするときに、勝手に全ての対象へ「x:Name」を定義してしまうのですが、
デフォで親参照とかにする設定などありますか?

311:デフォルトの名無しさん
09/02/23 12:51:58
xamlっていったんC#のコードに変換してからコンパイルされるんですか?
コードビハインドのコンストラクタにあるInitializeComponent()の定義を参照
すると、window1.g.csみたいなファイルが生成されて、xamlを置き換えた
windows forms時代のようなコードが見られるんですが。

そうやってるなら、いっそのことxamlなしでc#オンリーの選択肢もほしい。
RADツール使うなら、xamlだろうとc#だろうと、かわらんし。

>>283
激しく同意だ。xamlはとにかく裏で何やってるのかさっぱりわからんのが
気持ち悪い。
さっきのInitializeComponent()メソッドなんて定義がどこにもないのに、
使えることになっている。自動生成されたcsファイルいじったらどう反映される
んかねえ。  だいたい、プログラムのエントリポイントはいったいどこにある
んだ??? いくらなんでも隠蔽しすぎなんじゃないのかね、wpfは。

312:デフォルトの名無しさん
09/02/23 13:03:25
根本的に間違ってる
XAMLはC#のコードに変換しているわけではない
WPF自身が実行時に直接XAMLをパースして組み立ててる
window1.g.csはXAMLを読み込む処理を呼び出して
読み込まれた要素を対応するC#のフィールドに代入するためだけに生成される

313:デフォルトの名無しさん
09/02/23 13:11:51
C#だけでも作れるよね?
xaml使ったのとC#だけのもの、初期化処理は違うとしてもほぼ等価な動作すると考えていいの?

314:デフォルトの名無しさん
09/02/23 13:25:07
それはもちろんそうだけど
RADで生成するからxamlだろうとC#だろうとかわらんというなら
わざわざC#を吐かせるメリットがない
言語別に対応しないといけないし動的に読み込むこともできないし
人間が読んだり修正したりするのも難しいし
RADが人間による修正に対応するのも難しい

315:デフォルトの名無しさん
09/02/23 19:33:27
>>311
XAMLからコントロールの論理ツリーが生成される。〜.g.cs のC#コードはそれを参照するため。
それと、ASP.NETと違ってコントロールへはIDによるアクセスじゃなくなった。

> xamlはとにかく裏で何やってるのかさっぱりわからんのが気持ち悪い。
裏とか表ってw
これはW*Fの基本理念の一つで、「1つのプログラム言語やコードで何でもでき、そして何でもやる。」
という旧態のプログラマ的な思想から脱却して、高度にモデル化され、そして機能と役目の分担が
進んだ結果、こう変化したんだよ。

>>313
できるよ。 過去の資産であるWindowsFormライクなプログラミングスタイルも継承しているからね。
過去の資産=過去の頭脳w ・・・過去の技術者を一気に冷たく捨てないところがマイクロソフト。

316:デフォルトの名無しさん
09/02/23 19:38:21
すごく…
胡散臭いです

317:デフォルトの名無しさん
09/02/23 20:08:53
UI専用の言語とその構造に基づいたデザイナという組み合わせは、C#のコードをドキュメント化
されていない流儀で自動生成するブラックボックスなデザイナよりも圧倒的に優れていると思う。
Windows Formsは昔のVisual Basicのノリから抜け出せていなかった。

それに、コンテナの配置はxamlでやって、コントロールの動的生成をコードでやって、とか、
役割分担のさじ加減をプログラマがコントロールし易い(Windows Formsでもできるけど)WPF
の魅力だと思う。

xamlはxmlベースの構造的な言語だから、不明瞭なのは直接の子要素がChildrenプロパティなのか
Contentsプロパティなのか、くらいだけで、同等のコードをC#で書くのってとんでもなく楽。


318:デフォルトの名無しさん
09/02/23 20:28:48
いやおまえら、partial classくらい知ってろよ。
2.0からずっと、UIとイベントの定義は一緒だろうが。

WindowsFormsとXAML、どっちも同じ。ASP.NETも。
XAMLはC#で全く同じものが書ける。これは最終的に一つのクラスになるから。
複数のソースで一つのクラスが定義できるのがpartial class。XAMLのように
言語が異なるのは既にASP.NETでやっている。

319:デフォルトの名無しさん
09/02/23 20:38:49
ここまでの議論の参加者で*.xaml.csでpartial クラスの機能が使われている事を知らない奴が
いるとは思えないんだが・・・

320:デフォルトの名無しさん
09/02/23 20:53:59
時代はpartial !! じゃなくてw
C#使ってるならそのメカニズムくらい分かってる筈だよ。

つーか、Formデザイナからだけでなく、XML構文によるUI要素の
名前空間、クラス、プロパティ、イベントの表現が、公式フォーマットの
XAMLドキュメントという定義で可能になったことが新しい。

321:デフォルトの名無しさん
09/02/23 21:02:35
そうそう。UI定義の方法は、Windows Forms時代には、デザイナが勝手な流儀で勝手にやっていただけ。でもxamlはXMLベースで標準の構造的な仕様が定まっていて、その構造の上にデザイナが
乗っかっている。だから、ブラックボックスで気持ち悪い、とはならない。

322:デフォルトの名無しさん
09/02/23 21:29:15
以前に書き込んだC#+WPF+ARToolkitPlus+DShow.NETでミクさん大放出を、
Windows Media Playerの視覚エフェクトにしてみた。WMPのSDK的に視覚エフェクト
プラグインはC++で作ってオンフレームでデバイスコンテキストに描画するように
なっているので難儀したけど、C#板でCOM InterOpについて助言してもらってどう
にかC#+WPFだけで全部やれた。

動画:URLリンク(www.nicovideo.jp)
ソース:URLリンク(sites.google.com)
のWMPEmitMiku.zip

なんかもうコンセプトがカオスになってきて、WPF板的にスレ違いっぽくなってきたので
これで終わりにするわ。後の進展(あるか分からないけれど)に興味がある人がいたらニコ動の
マイリストでも時々見てくれ。

323:デフォルトの名無しさん
09/02/23 21:36:00
> window1.g.csはXAMLを読み込む処理を呼び出して
> 読み込まれた要素を対応するC#のフィールドに代入するためだけに生成される

いっている意味がよくわからないんだけれど、

window1.g.csはイベントのシンクとかも処理しているように見えるんだが。
フィールドの代入だけなんて代物じゃないんじゃないの?
xaml全体がシンタックスシュガーかと思っていたよ。


そんなとこまで隠蔽して、

324:デフォルトの名無しさん
09/02/23 21:40:22
323が隠蔽された!

325:デフォルトの名無しさん
09/02/23 21:49:21
window1.g.csがやってること
・リソースのXAMLを読み込む(Application.LoadComponentに丸投げ)
・ロード後,CLRフィールドに要素を代入
・イベントハンドラのアタッチ

326:デフォルトの名無しさん
09/02/23 21:59:07
C#だってILに変換される。それを隠蔽とは言わない。
期待される動作が一通りで、その通りの動作をするのならば、より低いレベルが隠蔽されていても
問題にはならない。必要に応じて高レベル、低レベルを使い分ければ良い。

ブラックボックスが気に食わないのは、ただ一通りの動作を期待できないからで、それは知識不足
のせいだと思うんだけど。

327:デフォルトの名無しさん
09/02/23 22:13:06
XAMLをAPIでパースして、親子関係にのっとり
それぞれのUI用クラスを生成してるだけだろ?

どこが隠蔽されてて気持ち悪いのかぜんぜんわからねーよ。

328:デフォルトの名無しさん
09/02/23 22:22:48
バインディングとかがイベントで実装されている事を知らずに、謎のコードが自動生成されている
とか勘違いしているのかなあ。

俺が気持ち悪く感じるのは、XAML記述上の直接の子要素がどのプロパティ(ChildrenとかContentとか)
に対応するのかXAMLを見ただけでは分からない事だけだ。まあ確かにこれだけは気持ち悪い。

329:デフォルトの名無しさん
09/02/23 23:14:26
以前アップしたXAMLを使わないWPFの例
URLリンク(kansai2channeler.hp.infoseek.co.jp)
一番下のXAMLのWindowsタグをPageに変えて、utf-8でhoge.xamlで保存。
IEで開けばloose xamlでも動く。


330:デフォルトの名無しさん
09/02/23 23:42:06
>>322
ARToolKitはC++でライブラリをラップして、
DLL作ってから参照してるのかいな?

331:デフォルトの名無しさん
09/02/23 23:57:40
>>330
その部分はbrains-N-Brawnさんの仕事。
``ARToolKitPlus - modified to be a DLL and export C-style functions that can be pInvoked from C#''
URLリンク(www.mperfect.net)
その部分だけpure .netじゃない。そのDLLをPInvokeするラッパはbrains-N-Brawnさんのを拝借
していてそれはpure C#(PInvokeがpureかは別として)。それからDShow.Netも(COM InterOpが
pureかは別として)pure C#。そんでもって3D出力は、NyARToolkitなんかがDirectX SDKに含まれる
Managed Direct Xを必要とするのに対しこちらはWPFの3Dを使用しているのでまあ敢えて言えば
pure(標準の) C#。
というわけで、上記DLLを除いて、オリジナル・非オリジナルのコードいずれも完全に標準のC#と
.NET 3.5(WPF)で書かかれている。まあ、NyARToolkitなんかはARToolkitのコードをマネージコード
に真面目に移植しているので、どっちがpureかというのは微妙だけど。でも、3D出力がWPFである点
によって、とっつき易いアプローチになっている面は確実にあると思う。というか、それで無理やり
関連付けてこのWPFスレに投稿しているわけなんだが。



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4969日前に更新/148 KB
担当:undef