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スレに投稿しているわけなんだが。
332:デフォルトの名無しさん
09/02/23 23:58:25
ごめん、改行が変になって読みにくくなった。
333:デフォルトの名無しさん
09/02/24 00:00:05
Windows フォトギャラリーで露出とかコントラスト調整すると
スライダーの移動に合わせてほぼリアルタイムに描画されるんですが、
この機能を自作 WPF プログラムに実装したい場合どうすればよいでしょうか?
334:デフォルトの名無しさん
09/02/24 00:07:08
WriteableBitmapでも使って更新しまくれとしか答えようがない
画像処理自体はスレ違い
335:デフォルトの名無しさん
09/02/24 00:10:59
詳しくないんだが、一応バインディングとかINotifyPropertyChangedインタフェースとかの話題じゃないか?
336:デフォルトの名無しさん
09/02/24 00:17:39
ビットマップの方更新するだけでよかったはず
337:デフォルトの名無しさん
09/02/24 00:19:37
どのタイミングで更新、っていいたいんじゃ?
338:デフォルトの名無しさん
09/02/24 00:22:30
ダイナミックリソースとかバインディングじゃないの?
339:デフォルトの名無しさん
09/02/24 00:22:59
>>331
を、便利な物を作ってる人がいたんだ!。
ARには興味あったのでいじくってみる。
ソース読ませていただきます。
340:デフォルトの名無しさん
09/02/24 00:24:30
よし、リフレクタの出番だ。
URLリンク(www.red-gate.com)
341:デフォルトの名無しさん
09/02/24 00:27:05
ほんとにビットマップ更新するならバインディングじゃどうしようもない
SliderのValueChangedイベント使うくらい
342:デフォルトの名無しさん
09/02/24 00:38:30
結局C#なのね
343:デフォルトの名無しさん
09/02/24 00:43:21
>>333の言いたいことってこういうこと?
URLリンク(blogs.wankuma.com)
344:デフォルトの名無しさん
09/02/24 09:29:03
>>323はタブーに触れて消されちゃったんだなあ。
345:デフォルトの名無しさん
09/02/24 20:55:23
入力可能なDataGrid風ListView↓使ってる人っている?
URLリンク(pro.art55.jp)
URLリンク(d.hatena.ne.jp)
テキストの編集中、右クリックでTextBoxデフォルトのContextMenuを開くと
TextBoxがキーボードフォーカスを失い、編集モードを終えてしまうんだけどそういう風にはならない?
ContextMenuのアイテムも選択できない。
346:333
09/02/24 22:01:41
おまえら、エスパーすぐるw
>>343 そこを参考にして画像ビューワーを作ってて、
>>341 のイベントで、
>>334 の方法で自前で露出の調整をしたら、
イベントの処理に5秒もかかっちゃって、
がんばって最適化しても1秒を切ることができなくて、
ためしに、 Vista の Windows フォトビューワーいじってみたら
瞬時に変わるので、これは、GPU 使ってるとか、DirectX 使ってるとか、
なんか自分の知らない WPF テクニックがあるのかと思って質問しました。
347:デフォルトの名無しさん
09/02/24 22:10:35
だから、>>340のリフレクタで解析してみなよ。
俺、Windows XP⇒Windows 7ベータだから、Windows フォトギャラリーないんだ。
348:デフォルトの名無しさん
09/02/24 22:17:07
WPF自体はDirectXつかってるけどな
349:デフォルトの名無しさん
09/02/24 22:46:22
単に画像処理の実装が悪いだけだろ
WPF自体の描画更新なんか画像処理に比べたら一瞬
350:デフォルトの名無しさん
09/02/24 22:47:51
unsafeってしってるか?
351:デフォルトの名無しさん
09/02/24 22:48:31
Bitmapの処理はメモリをロックしてアンマネージでポインタを使わないと遅いぞ~。
352:デフォルトの名無しさん
09/02/24 22:52:26
ここはWPFスレですよ
WiteableBitmapは十分速いよ
もともと>>351みたいな書き込みの方法しか用意されてない
353:デフォルトの名無しさん
09/02/24 23:03:59
writeableBitmapにコピーするデータ作るのに時間かかってるんだろうが
354:333
09/02/24 23:05:09
>>347
>>340 は俺へのレスだったのか。すまん。
reflector は知ってたけど、Windows フォトギャラリー って .net のプログラムだったんだ?
今日は出先なんで無理だが、家帰ったら試してみる。
>>349
そうなんだよ。だから、フォトギャラリーがどうやってるかわかればなぁ・・・と。
>>350 >>351 >>352
WritableBitmap で unsafe でポインタ使っても遅くて、
C++ で書き直して1秒切るところまでいったんだが、
まだ遅いので質問するにいたったわけです。
355:333
09/02/24 23:06:15
>>353 そのとおりです。
356:デフォルトの名無しさん
09/02/24 23:07:03
アルゴリズムが違うとか,プレビュー用に簡易に処理してるとか
いずれにしてもこれ以上はスレ違い
357:デフォルトの名無しさん
09/02/24 23:13:09
HLSLでやってみるとか
WPFでも使えるようになったことだし
358:デフォルトの名無しさん
09/02/24 23:21:00
>>354
もはやあれで半分反則だけどこんなのがある。反則なので速いと
いっていいのかわからんが
URLリンク(www.codeplex.com)
川西先生の紹介↓
URLリンク(blogs.msdn.com)
ちなみにちょっとビルドに注意。Codeplex にある別のやつがいる
359:デフォルトの名無しさん
09/02/25 04:54:37
Windows Formsコントロールのオーナードロー拡張なんてもういやだ。
WPFの入れ子コントロールとXAMLが欲しい。
あと文字の強制アンチエイリアスはさせたくない。
こんな要望に対するソリューションて現状ある?
360:347,340
09/02/25 05:17:51
>>354
え、WPFスレで、しかもWPFでどうやるのかって質問だったから、.NETプログラムなのかと勝手に
勘違いしてしまった。そうでないのなら、普通にシェーダ使ってるんじゃないの?
純粋なWPFアプリケーションだとしたら、>>358なんかで紹介されているWPFでのシェーダの使用
は最近の更新で可能になったものだから、Vista標準のプログラムとしてはないと思う。
結局、.NETプログラムじゃない、シェーダを使ってるか、画像処理を気合で頑張っている、つまり
スレ違いって所で落ち着きそうだ。
361:デフォルトの名無しさん
09/02/25 06:14:00
>>359
XAMLの中で、例えばテキストボックスに
<TextBox RenderOptions.EdgeMode="Aliased" x:Name"textbox1" ~ />
と記述した場合、カーソルバーは1ドット幅の縦棒でシャキーンと表示されるけど、テキスト文字だけは
常にアンチエイリアス処理されますね。これだけ我慢すれば、最良のソリューションじゃないでしょうか。
362:デフォルトの名無しさん
09/02/25 09:29:50
>>359
Form上でそれ実現する奴作った。それ使ったシステム5月ぐらいにリリース予定。
363:デフォルトの名無しさん
09/02/25 09:32:20
手伝おう
テストするからうpして
364:デフォルトの名無しさん
09/02/25 09:52:25
写真だけうp
URLリンク(www.rupan.net)
365:デフォルトの名無しさん
09/02/25 11:10:48
>359
ElementHost使えば、winformsにコントロール単位でWPFコントロール
持ち込めるだろ。例えば、ListBoxだけとか。
んで、起動時にSystemFontsの中から適当なの選んで設定すれば、
フォントもwinforms同様になる。
366:デフォルトの名無しさん
09/02/25 13:33:55
初心者な質問で恐縮です。
InkCanvasのペンの色を変える方法を教えてください。
xamlとC#と両方の方法をお願いします。
367:デフォルトの名無しさん
09/02/25 13:40:27
URLリンク(msdn.microsoft.com)
MSDN読めないならWPFなんか手を出さない方がいい
368:デフォルトの名無しさん
09/02/25 17:45:18
キーバインディングでメソッドを呼ぶときは、どのように書けばいいですか?
たとえばEnterで、設定ボタンを押すとき。
C#だけなら、
private void settingbutton_Click(object sender, EventArgs e){}
を呼ぶには、
settingbutton_Click(this, EventArgs.Empty);
と書けばいいのですが、xamlではどう書けばいいですか?
<KeyBinding Key="Enter" Command="Close"/>
のCommandのところに書けばいいのかと思っているのですが、ここを適当に書くと、
'CommandValueSerializer' ValueSerializer は 'System.String' から変換できません。
とエラーになります。System.Stringということは、デフォルトでいくつかきまっていると思うのですが、その一覧はどこにあるのでしょう?
またその一覧のなかで、メソッドを呼ぶStringはなにでしょう?
よろしくお願いします。
369:デフォルトの名無しさん
09/02/25 17:59:24
> settingbutton_Click(this, EventArgs.Empty);
> と書けばいいのですが、
の意味が心底分からんが
適当にCommandsクラスとか作ってコマンドごとにRoutedUICommandのstatic readonlyフィールドを用意
それをKeyBinding.Commandに設定
あとはCommandBindingでコマンドが呼び出すメソッドを設定
370:デフォルトの名無しさん
09/02/25 18:12:04
す…、すまん。ぜんぜんだめだ。
おれが適当に書くとエラーの山だ。
適当にCommandsクラスをどこに作る? .csのほう?
public partial class Commands : Window {
}
コマンドごとにRoutedUICommandのstatic readonlyフィールドを用意
コマンドごと…。ってことは、設定コマンドを作るのだから、
public partial class Commands : Window {
Setting
}
それをKeyBinding.Commandに設定
xamlで
<KeyBinding Key="Enter" Command="Setting"/>
CommandBindingでコマンドが呼び出すメソッドを設定
private void setting(object sender, EventArgs e){//メソッド}
添削頼む…。
371:デフォルトの名無しさん
09/02/25 18:28:17
> 適当にCommandsクラスをどこに作る? .csのほう?
> public partial class Commands : Window {
System.Windows.Input.ApplicationCommandsみたいにstaticクラスでいいよ。
新しくcsファイル作ってそこにでも。
まあ別にCommandsクラスじゃなくてもいいけどな。肝心なのはRoutedUICommandのフィールドだから。
ApplicationCommandsみたいにICommandは一つにまとめるのが自然だと思っただけで。
つかまずApplicationCommands.CloseとかでKeyBindingとCommandBinding使ったの書いてみろよ。
MSDNやヘルプのこれらのクラスの解説にサンプルがいくらでもあるから。
372:デフォルトの名無しさん
09/02/25 18:42:14
WPFの根幹ってWin32API群なの?
.NET とどう違うの?
373:デフォルトの名無しさん
09/02/25 19:08:57
WPFも.NETで動くことは変わらない
WPFはSystem.Windows.Formsに代わる新しいGUIフレームワーク
最大の特徴は,Win32ネイティブのコントロールを使用せずにウインドウの中身を
一枚の絵としてすべてのコントロールをDirect3Dで自前で描画してること
ゲームの画面にたくさんのキャラクターを描画するのと同じ仕組み
374:デフォルトの名無しさん
09/02/25 19:16:26
ApplicationCommands.CloseでKeyBindingとCommandBindingのは書けてます。
xamlに
<KeyBinding Key="E" Modifiers="Control" Command="Close"/>
csに
private void Close_Executed(object sender, RoutedEventArgs e ){Close();}
public void Close(object sender, CancelEventArgs e){}
です。
じゃあsittingの場合は…。
xamlに
<KeyBinding Key="S" Modifiers="Control" Command="setting"/>
csに
private void setting_Executed(object sender, RoutedEventArgs e ){setting();}
public void setting(object sender, CancelEventArgs e){}
としてはまってるわけです。
で、System.Stringの一覧はどこにあるのでしょう?
375:デフォルトの名無しさん
09/02/25 20:11:33
System.Stringは文字列型の事だよ。
それと、<KeyBinding ほにゃらら だけじゃなくて、それと
<CommandBinding ほにゃらら
がセットになって初めてコマンドのバインディングができる。
それから、
<KeyBinding Key="E" Modifiers="Control" Command="Close"/>
の Command="Close" って記述においては、ApplicationCommandsが特別扱いされている。
より冗長だが汎用的な書き方は
<KeyBinding Key="E" Modifiers="Control" Command="ApplicationCommands.Close"/>
となる。つまりクラスのフィールドを指定しているわけ。多分そのエラーメッセージは、この指定
がうまく行っていないという事。それでもって、自分で作ったクラスの静的フィールドを指定する
には、さらにxamlのマークアップ拡張を使う必要がある(多分)。
だから、xamlは
<Window x:Class="Foo.Window1"
...
xmlns:foo="clr-namespace:Foo">
<Window.CommandBindings>
<CommandBinding Command="{x:Static foo:Window1.FooCommand}" Executed="FooCommand_Executed" />
</Window.CommandBindings>
<Window.InputBindings>
<KeyBinding Key="f" Modifiers="Control" Command="{x:Static foo:Window1.FooCommand}" />
</Window.InputBindings>
</Window>
で、Window1.xaml.csの中の# public partial class Window1 : Window {...}の中に
staticでreadonlyなFooCommandフィールドと、FooCommand_Executedメソッドを実装する。
多分こんな感じ。
376:375
09/02/25 20:21:42
>>375は俺自身参考にした事がある
URLリンク(blogs.wankuma.com)
の記事を読み直してまとめたもの。詳しくはリンク先の記事を、やる気があれば
連載になっているから最初から、読んで行って。
377:デフォルトの名無しさん
09/02/25 21:00:22
実験してみたけど、
Command="{x:Static foo:Window1.FooCommand}"
は
Command="foo:Window1.FooCommand"
とどちらでも問題ないみたい。だから必ずしもx:Staticのマークアップ拡張を使う必要はない。
378:デフォルトの名無しさん
09/02/25 21:44:38
>>373
ありがとうございます
DirectX系で壁画するということはGPUと相性がよさそうですねVista Aeroなんかとも
379:デフォルトの名無しさん
09/02/26 08:10:20
原始人現る
380:デフォルトの名無しさん
09/02/26 08:20:15
壁画って何だよ?
381:デフォルトの名無しさん
09/02/26 09:15:54
>>373
WPFで作ったアプリのUIを自動テストするのは、どんな感じ?
大昔つくったアプリは、コントロールにメッセージ送りつけてやったけど。
382:デフォルトの名無しさん
09/02/26 10:00:52
UI Automationという機能を使うらしい
383:デフォルトの名無しさん
09/02/26 14:11:27
だれか優しくスマートに懇切丁寧におしえろ。
ListBox.Items.Add("うんこ")見たいな物を3回ループしてやると選択がくるっとんねんけどな、コンテンツだと正常なんだわ。
ListBoxて文字でアイテム管理しとん?
解決方法どないやねん???
>>384
384:デフォルトの名無しさん
09/02/26 14:19:06
質問が把握できないので返答もできないわ。力になれなくてごめん。
385:デフォルトの名無しさん
09/02/26 14:21:26
そんな答えほしなかったわぁー。
おっちゃんも暇ちゃうねん、出来るだけはよう答えてくれへんか?
色々問題もあってやな、今火達磨状態やねんで?
誰かに伝えたいこの想い
386:デフォルトの名無しさん
09/02/26 16:53:09
>>381-382
皆さん、UnitTestのテストレポートってどうしてる?
基本的に、初期値、幾つかの中間値、そして境界値とその内外だけを確認?
387:デフォルトの名無しさん
09/02/26 23:46:12
UnitTest?なんですかそれは
ゆとりにもわかるように説明してください
388:デフォルトの名無しさん
09/02/28 01:04:38
WPFで読み込んだファイルの取り扱いについて質問があります。
下記のようにファイルを読み込むとロックするのですが、
string imgFile = @"C:\tmp.jpg";
img.Source = new BitmapImage(new Uri(imgFile));
ロックをはずす方法を教えてください。
ちなみにFormの場合には、
pictureBox1.Image = Bitmap.FromFile(imgFile);
pictureBox1.Image.Dispose();
でロックをはずすことができます。
よろしくお願いします。
389:デフォルトの名無しさん
09/02/28 01:41:22
Windows.FormsのBitmapでロックされないように
MemoryStreamに読み込んでそこからBitmapを読み込むことはよくやる。
同じようにMemoryStreamに読み込ませてBitmapDecoderで読み込めばいいんじゃないかな?
390:デフォルトの名無しさん
09/02/28 02:07:24
>>388
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(imgFile);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.EndInit();
391:デフォルトの名無しさん
09/02/28 02:49:29
みなさま。
早速ありがとうございます。
>>390
これで試してみました。
しかし、ウィンドウは開くものの、ファイルはなにも表示されなくなってしまいました。
392:デフォルトの名無しさん
09/02/28 12:30:28
>>391
コントロールに読み込んだイメージセットしてないだろ
393:デフォルトの名無しさん
09/02/28 12:38:49
UI要素の下や上だけに境界線を引くにはどうしたらいい?
394:デフォルトの名無しさん
09/02/28 12:46:38
>>392
bmp.UriSource = new Uri(imgFile);
だけではセットしたことにならないの?
セットの方法を教えてください。
395:393
09/02/28 12:57:36
自己解決
<Border BorderBrush="Black" BorderThickness="0 1 0 0">
396:デフォルトの名無しさん
09/02/28 13:27:07
>>394
処理の内容ちゃんと理解しなきゃ
397:デフォルトの名無しさん
09/02/28 13:33:32
>>394
>>388に書いてある
img.Source = new BitmapImage(new Uri(imgFile));
ってコードの、右辺の処理new BitmapImage(new Uri(imgFile))をファイルがロックされないように
書き直したのが>>390。出来上がったBitmapImageのインスタンスをimg.Sourceから参照させる
処理は書かなきゃ。
398:デフォルトの名無しさん
09/03/01 18:29:38
できました。1日いろいろ試してました。
(1)img.Source = new BitmapImage(imgFile);
(2)BitmapImage img = new BitmapImage();
img = imgFile;
(3)BitmapImage img = new BitmapImage();
img = bmp;
(4)BitmapImage img = new BitmapImage();
img.Source = bmp;
(5)BitmapImage img = new BitmapImage();
img.Source = bmp;
(6)BitmapImage img = new BitmapImage(bmp);
結局次のようにしてできました。
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(imgFile);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.EndInit();
img.Source = bmp;
399:デフォルトの名無しさん
09/03/01 18:30:14
処理の内容の理解をしている限りでは、
BitmapImage bmp = new BitmapImage(); //あたらしいbmp変数を作る。bmpのインスタンスを作る。
bmp.BeginInit(); //bmpの処理を始める。
bmp.UriSource = new Uri(imgFile); //bmpにUriソースからデータを読み込む。
bmp.CacheOption = BitmapCacheOption.OnLoad; //??
bmp.EndInit(); //読み込みの終了。これでディスクとは切り離される。
img.Source = bmp; //画面のimgにbmpをいれる。これでimgにbmpを表示できる。
これで表示はできロックもなくなりました。
しかしながら、問題が。
目的のファイルの削除をする、という動作がまだできないままなのです。
削除処理は次のように書きました。
private void button1_Click(object sender, RoutedEventArgs e)
{
System.IO.File.Delete(imgFile);
}
これでボタンを押すと、ウィンドウが消えるのですが、ファイルは残ったままです。
アドバイスお願いします。
400:デフォルトの名無しさん
09/03/01 20:07:14
>>399
string path = @"C:\test.jpg";
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(path);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.EndInit();
image1.Source = bmp;
System.IO.File.Delete(path);
これで動いたよ
> 削除処理は次のように書きました。
> private void button1_Click(object sender, RoutedEventArgs e)
> {
> System.IO.File.Delete(imgFile);
> }
これのパスを間違えてるとかじゃね
401:デフォルトの名無しさん
09/03/01 20:14:16
>>399
>bmp.CacheOption = BitmapCacheOption.OnLoad; //??
分からなければMSDNで調べろよ…
URLリンク(msdn.microsoft.com)
URLリンク(msdn.microsoft.com)
402:デフォルトの名無しさん
09/03/01 20:18:44
> bmp.CacheOption = BitmapCacheOption.OnLoad; //??
なんだよそれ?いい加減にしろよ。
URLリンク(msdn.microsoft.com)(VS.80).aspx
これ全部読むまで再質問禁止。
403:デフォルトの名無しさん
09/03/01 20:27:25
>>400
ありがとうございます。
なんだかわからないのですが、一度終了して再起動したら動くようになりました。
いろいろありがとうございました。
404:デフォルトの名無しさん
09/03/02 16:49:22
WPFの「Frame」カスタムコントロール作成でこけましたorz
Blendで作ってもらったFrameのXAMLをVSで読み込ませると
「'Frame' ControlTemplate TargetType は、テンプレートの型 'PlaceHolderControl' と一致しません。」(エラー場所は無駄な事言ってるので省きました)
と、例外が発生します。
コントロールを作ってもらっても一緒です。
しかし、これらは実際バグっているわけでもなく、ビルドもコンパイルも正常に動きます。
どうもVSのデザイナだけがこけています。
何かいい回避方法(Frameに似たコントロール)などありませんか?
よろしくお願いします。
環境:Windows7 VS2008
405:デフォルトの名無しさん
09/03/02 19:17:27
言ってることがよくわからない
FrameのControlTemplateを作ってるの?それ何の意味があるの?
そんなことしないでユーザコントロールにFrameを張り付ければ一緒だと思うんだが
406:デフォルトの名無しさん
09/03/02 19:29:38
FrameってHTML表示したいときとか
「戻る」「進む」ができるようにしたいときに使うんだよわかってる?
コンテンツを飾り付けしたいだけならDecoratorの派生クラス(Borderなど)使う
もちろんFrameを飾り付けするのにもDecoratorが使えるし,普通はテンプレート使わずにそうする
407:デフォルトの名無しさん
09/03/02 19:34:06
すいません、言うべき事が抜けすぎでした・・・
分け合って「Frame」コントロールを作ってもらいました。
これはWebページとXAMLファイルを頻繁に行き来することになったのでこのようにしています。
そしてコントロールにする必要があるのは、そのFrameの中にゴチャゴチャしたものをつける必要があったのです。
発注したコントロールに問題があるのかと思ったのですが、Frame自体を少しでも変えるとおかしくなります。
<Window.Resources>
<ControlTemplate x:Key="FrameControlTemplate1" TargetType="{x:Type Frame}"/>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<Frame Margin="128,160,200,131" Content="Frame" Template="{DynamicResource FrameControlTemplate1}"/>
</Grid>
このような簡単なものでもエラーになってしまいます。
理由を教えてください
408:デフォルトの名無しさん
09/03/02 19:42:32
ちょっと状況が良く分からないんだけど、WPFにFrameコントロールがあるので
衝突しているんじゃないかな?
xmlns宣言で名前空間への参照を追加して、名前空間込みで「Frame」コントロールや
そのx:Typeを指定したらどうだろう?
409:デフォルトの名無しさん
09/03/02 19:48:34
その自作FrameのTemplatePart属性は確認した?
410:デフォルトの名無しさん
09/03/02 21:00:28
>>408
ちょっと判らなかったです・・・
MSDNをみてやってみたのですがうまくいきません。
アセンブリは「PresentationFramework.dll 内」となっているので問題ないですが、
XMLNSは参照して追加しても「タグ 'Frame' は、XML 名前空間 'URLリンク(schemas.microsoft.com)' にありません。」
となってしまいます。
色々やってみた結果、
<Frame Margin="120,192,136,139" Content="Frame" Template="{DynamicResource FrameControlTemplate1}">
<Frame.Resources>
<ControlTemplate x:Key="FrameControlTemplate1" TargetType="{x:Type Frame}">
<ContentPresenter />
</ControlTemplate>
</Frame.Resources>
</Frame>
ではVSでもBlendでもデザイナで編集したり、コンパイルできたりするようになりました。
結局こうなってしまう理由がわかりませんw
リソース内でFrameのスタイルを指定させたいのですが、どうしてもうまくいかない・・・
>>409
これはどういうことでしょうか?
「TemplatePart」というのが判らず仕舞いになってしまいましたorz
申し訳ないです。;;
411:デフォルトの名無しさん
09/03/02 21:08:56
コントロールテンプレートは完全に自由に書いていいわけじゃなくて,
最低限テンプレートに含めないといけないコントロールが決められてるのが普通
それを示す属性がTemplatePart
逆に,そういう条件が必要ないならあまりテンプレートを使う意味がない
412:デフォルトの名無しさん
09/03/02 21:19:23
>>410
ツール-オプション-テキストエディタ-xaml-その他-既定のビュー
で
「常にフルxamlビューでドキュメントを開く」
のチェックを外せば直るみたい。
でも、xaml直書きする場合、このチェックは入れておきたいよねえ。
なんか普通にバグっぽいぞ。
413:デフォルトの名無しさん
09/03/02 21:38:27
>>411
>コントロールテンプレートは完全に自由に書いていいわけじゃない
てっきり何をしてもいい>>412
物だだと思っていました!
TemplatePartは詳しく調べる必要があるようです。
>>412
うまくいきませんでした・・・
どうしても「'Frame' ControlTemplate TargetType は、テンプレートの型 'PlaceHolderControl' と一致しません」がデザイナのみにエラーが出てきます。
コンパイル、ビルドも出来るので間違ってはいないと思いますが、VSのデザイナが使えないというのはキツイです・・・
414:デフォルトの名無しさん
09/03/04 04:37:13
WPFのデザイナは相変わらず貧弱だなぁ
そこが萌えるんだけどw
415:デフォルトの名無しさん
09/03/05 16:28:41
WPF始めてみたいけどネット上には驚くほど資料ないねこれ・・・
416:デフォルトの名無しさん
09/03/05 16:40:00
InteliSenseこそ最上のヘルプ
417:デフォルトの名無しさん
09/03/05 17:02:12
>>416
試すパターンが膨大で困るw
418:デフォルトの名無しさん
09/03/05 17:12:14
書店にも本が並んでない
すべてxamlのせいで敷居が高くなってるせいだと思う
WPFだけなら新しいコントロールライブラリってことで十分普及したと思うよ
Microsoftはxaml使うのをWPFが使われるようになってからに遅らせるべきだった
419:デフォルトの名無しさん
09/03/05 17:25:04
ネットだと
URLリンク(ufcpp.net)
とか
URLリンク(uchukamen.com)
くらいを見て、後はいろんな人のブログを見てバインディング周りの
定石をしれば、本当の話IntelliSenseで十分ヘルプになるようになる
と思う。
420:419
09/03/05 17:26:32
ごめん、419の前にこれを投稿しようとしたんだ。
俺はWPF+XAMLはWindows Formsや昔のWin32APIでウィンドウ
作ってた時代よりも初心者向けだと思うよ。
本がないのも外国語の物は専門性の高い物から入門書まで多いし、
日本の出版事情が大きいんじゃないかな。
421:デフォルトの名無しさん
09/03/05 18:07:43
ちょっと質問!
TextBlockで普通の改行入りテキストを
<TextBlock TextWrapping="Wrap">
あれ?<LineBreak />
声が<LineBreak />
遅れて<LineBreak />
聞こえるよ<LineBreak />
</TextBlock>
こうやって作った後Blendとかに再読み込みさせると「Inline」がいっぱい引っ付いてくるんだけど、この書き方は推奨されていないから?
それともBlendの屁理屈?
422:デフォルトの名無しさん
09/03/05 20:01:29
初心者にとっては(とっつきやすさでは)
Windows Forms > WPF/XAML
Windows Formsは
・XMLを編集しなくていい
・APIのデザインも直感的(使いたい機能が「そこ」にある)
423:デフォルトの名無しさん
09/03/05 21:31:12
>>421
意味が同じだから
424:デフォルトの名無しさん
09/03/05 22:27:40
>>422
WPFはWindowsFormsと同じようにAPIベースで作成できるよ。
名前が違うだけでやってることはほぼ同じ。
初心者ってのはおまえ自身のことだろ。
425:デフォルトの名無しさん
09/03/05 22:31:49
>>423
答えてくれてありがとう!
何かTextBlockも機能的にはとてもいいけど、Labelの方が簡単でとっつき易いなー
426:デフォルトの名無しさん
09/03/05 22:43:40
一般のテキスト表示にはTextBlockを使う
Labelは別のコントロールに文字通りラベルとアクセスキーを付けるためだけに使う
ということでおk?
427:デフォルトの名無しさん
09/03/05 22:45:20
Labelは一行
TextBlockは数行
くらいにしか深く考えたことないや。
428:デフォルトの名無しさん
09/03/05 23:16:17
GDIが早くていいよ
429:デフォルトの名無しさん
09/03/05 23:37:44
>>419
bindingが覚えづらい。xml的お作法としてはああなるのが正当なのかも
しれないけれど、直感に反する書き方だし、わかりづらいし、何とかしてほしい
リソースがらみもそう。
とにかくxamlで中カッコ {}が出てくる場面はうんざりする。なんなのこの変態言語
って感じで。
430:デフォルトの名無しさん
09/03/06 00:33:21
>>429
それ、マークアップ拡張だから、使わないで普通にBinding要素を子要素として
書く事もできるよ。その方がInteliSenseの支援も受けられるし。
RelativeSourceが絡んでくる場合とか、マークアップ拡張使うと
中カッコが二重になって>>429が言う通りうんざりする。入力支援
もないし。でも、Binding要素とそのRelativeSourceプロパティに
RelativeSource要素を普通のxmlの文法で書けば嫌な点は解消される。
例えば、前に書いた、Canvasに置いてあるViewport3Dの幅をCanvasに合わせる
コードを書いておくね(なぜかHorizontalAlignment=Stretchだとうまくいかなかった)。
<Viewport3D.Width>
<Binding Path="ActualWidth">
<Binding.RelativeSource>
<RelativeSource Mode="FindAncestor"
AncestorType="{x:Type Canvas}"
AncestorLevel="1"/>
</Binding.RelativeSource>
</Binding>
</Viewport3D.Width>
等価なのは
<Viewport3D Width={Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Canvas}, AncestorLevel=1}}/>
だけど、これだと>>429が言うように支援がなくて書くのが大変だし、
実行時まで間違いが分からないし、実行時の例外の内容は分け分からないしで
嫌になるのも分かる。
431:デフォルトの名無しさん
09/03/06 00:36:17
あと、マークアップ拡張使う方がxmlの入れ子が無闇に深くならなくて済むので
必ずしも悪い事でもない。そこでマークアップ拡張使う場合にお勧めなのが
次のアンチョコ:
URLリンク(go.nbdtech.com?94E138EA)
432:デフォルトの名無しさん
09/03/06 01:39:57
まともなデザイナーがVSについていればもう少し使われやすいと思うんだがな・・・・
Formsはペタこれするのはわかりやすいけれど、それ以上ができない。
WPFはそういうところがエレガントにできるけど、バインディングとか正直わかりにくい。
433:デフォルトの名無しさん
09/03/06 08:13:24
>>429
たしかにな
1.xaml=エレメントの画面表示
2.コード=データの操作
3.補助定義表=それらのバインディング等
みたいに分離してみたらどうなのか。3.を1.にくっつけているからゴチャゴチャになっている。
そういう定義ファイルに、>>430なら、
[ myViewport3D.Width <= myCanvas1.ActualWidth ]
とでも書いておけばそれ1行でOKにする。一目瞭然。初期化等も大方は
[ myWindow1.Background = Brushes.White ]
そこに記述でいいとすれば、xaml自体の方も(エレメントの単純な階層関係記述が基本になり)ごくすっきりする。
でこんなのは、システムがその表を解析して現状xamlに展開する、という形に出来る
(ものが多い、or出来るものだけをこういう初期定義可能にする)だろうから、拡張機能として比較的簡単に出来そうじゃないのか。
434:デフォルトの名無しさん
09/03/06 17:29:22
すいません、バインディングに関する質問です
複数のPage間でテキストデータをバインディングするとき、どうすればいいかわかりません。
名前空間などに定義する方法などが考えられるのですが、一番簡単で効率のいい方法はないですか?
435:デフォルトの名無しさん
09/03/06 17:57:21
このスレをマイクロソフトに教えればわかりやすい資料つくってくれるかもしれないよ
436:>>434
09/03/07 15:56:56
マイクロソフトのサンプルの中にWindow間でデータのバインディングをやっているのを見たのですが、
やっぱり名前空間を全てのWindowのザムルに定義している方法を取っているので、これが妥当だと思う
437:デフォルトの名無しさん
09/03/08 12:54:50
ProgressBarでバーをスムーズに(FormアプリのProgressBarStyle.Continuousみたいに)表示させるには
Templateを弄るしかないんですか?
438:デフォルトの名無しさん
09/03/09 18:06:04
DataContextにオブジェクトが設定してあるとして
LoadedやUnloadedイベントにそのオブジェクトのメソッドを登録したいのですが
コードを書かずにXAML上だけでできますか?
439:デフォルトの名無しさん
09/03/10 04:39:43
ここってsilverlightの話もしていいの?
440:デフォルトの名無しさん
09/03/10 08:15:43
>>439
専用スレあるよ。
Microsoft Silverlight 2.0 その3
スレリンク(tech板)l50
441:デフォルトの名無しさん
09/03/10 21:11:14
↑別スレですか
ありがとうございます
442:デフォルトの名無しさん
09/03/11 10:41:36
誰かMSに報告
Blendにて「Hyperlink」編集不可
直タグ打ち可
443:デフォルトの名無しさん
09/03/11 11:07:30
お前がやれ
444:デフォルトの名無しさん
09/03/11 11:24:06
アカウントとるのめんどくせw
エヘッ♪
445:デフォルトの名無しさん
09/03/11 22:36:52
xamlで記述したプログラムととC#のプログラムって
記述方法が違うだけで使ってるのは同じ.NET frameworkだから
性能とかはかわらないんだよね?
446:デフォルトの名無しさん
09/03/11 23:07:15
かわらん
447:デフォルトの名無しさん
09/03/11 23:08:12
ロードはたぶんXAMLの方が遅い
ロード後の動作は全く一緒
448:デフォルトの名無しさん
09/03/11 23:46:48
ありがと
htmlの描き方が苦手なおれはxamlじゃなくてまずC#でWPF勉強するわ
449:デフォルトの名無しさん
09/03/12 13:07:52
BitmapImageで読み込める画像形式を追加することはできませんか?
できればアプリケーション内でローカルに追加/削除できて
他のアプリケーションには影響しないようにしたいのですが。
450:デフォルトの名無しさん
09/03/12 16:10:21
UriSourceプロパティを使うのはたぶん無理
自前のコードで読み込んでStreamSourceに設定するしかないと思う
でもそうするといちいち他の画像形式に変換しないといけないし
BitmapImageを使う意味もないので
BitmapSource.Createを使ってピクセルデータから直接作った方がいい
451:デフォルトの名無しさん
09/03/12 17:17:54
アニメーション設定とかしてる場合、コードとザムルアニメーションはやっぱりコードの方が優先?
設定できたりする?
452:デフォルトの名無しさん
09/03/12 17:30:33
後で設定した方が有効になるだけだが
453:デフォルトの名無しさん
09/03/12 18:30:36
>>433
> 3.補助定義表=それらのバインディング等
これをデザイナのプロパティウィンドウあたりで簡単に設定できれば
xamlの中に取り込まれていても問題ないと思うんだが。
デザイナがひどすぎると思う。
454:デフォルトの名無しさん
09/03/12 18:42:18
結局デザイナだろ
WinFormsはもっと汚い形でやってるんだから
455:デフォルトの名無しさん
09/03/13 16:04:08
XMLバインディングをやってみたんだけど、「存在するXMLと同期」じゃなくて、
「存在しているXMLをリソースとして利用」のほうが正しい?
どうも作ってみても、EXEの中にリソースとして取り込まれて、XMLファイルの切り替えとかが出来ないw
RSSの仕組みでネットワークにあるものを指定してやると、切り替えとかをネットワーク越しに出来るけどローカルでは無理な感じ。
456:デフォルトの名無しさん
09/03/13 16:32:24
ごめん嘘、忘れて
457:デフォルトの名無しさん
09/03/14 02:47:23
ポカー
458:デフォルトの名無しさん
09/03/14 07:13:23
RichTextBox に Wordwrap プロパティがないんだけども、
改行しないで表示させたい場合どうしたら良いの?
459:デフォルトの名無しさん
09/03/14 14:17:38
TextBoxでいいんじゃね?
RichTextBoxの中にあるFlowDocumentだっけか、
あれにパネルとか突っ込んで見たんだけど、どうもスクロールバー自体がテキスト扱いになって操作できないし。
460:デフォルトの名無しさん
09/03/14 15:06:30
>>458
URLリンク(msdn.microsoft.com)
> RichTextBox ではテキストが常に折り返されます。
> テキストの折り返しが不要な場合は、FlowDocument の PageWidth を RichTextBox の幅より大きく設定します。
> ただし、この場合も、ページの幅に達するとテキストが折り返されます。
なので、
<RichTextBox><FlowDocument PageWidth="300"/></RichTextBox>
<RichTextBox><FlowDocument MinPageWidth="680" MaxPageWidth="1024"/></RichTextBox>
みたいに、適当に大きな幅を入れておくとか。
ただ、横スクロールバーを表示すると、最初からスクロールできる状態になってしまうのが難点だけど。
後は、イベントで動的に幅を測定して FlowDocument.PageWidth に反映させるとか。
461:458
09/03/14 23:04:06
>>459
色つけたかったんで、TextBoxじゃだめなのよ
>>460
ありがとう。助かったぜ。
462:デフォルトの名無しさん
09/03/15 00:28:01
WCFおもしろいな。しかしスレはない
463:デフォルトの名無しさん
09/03/15 01:17:46
>>462
Webサービス プログラミング総合スレッド
スレリンク(tech板)
464:デフォルトの名無しさん
09/03/15 01:38:18
>>462
特に旧来のWindowsForms、これからのスタンダードなWPF、XBAP、Silverlight、そして携帯電話や汎用
ブラウザ向けのASP.NETなんかで相互に共用できるアプリケーションシステムの構築となると、
やっぱりWCFは欠かせないよね。
俺の場合、データ・レイヤはSQL Server、アプリケーション・レイヤは機能・役割ごとに複数個のWCFで構築。
プレゼンテーション・レイヤは、WinForm、WPF、XBAP、Silverlight、Javaでマルチクライアント環境を実現。
今はこの基本3層構成をWebサービスのマイブームと位置付けて色々と遊んでいる。
465:デフォルトの名無しさん
09/03/15 13:16:46
重要度的には Silverlight>WPF>XBAP な希ガス。
466:デフォルトの名無しさん
09/03/15 13:34:46
>>465
XBAPはSilverlightへの発展的解消で完全に進化が止まっちゃったからね。
Silverlightは資料もチュートリアルも豊富。WPFとの2本立てで決まりだね。
そういえば、MIX'09でSilverlight 3の発表ですな。
ブラウザナビゲーションとの連携が目玉らしいけど、それよりTextBox上での
右クリック時にコピペ系のコンテキストメニューを出すようにして欲しいな。
467:デフォルトの名無しさん
09/03/15 13:46:59
もうSliverlight3の発表ですか、これは楽しみ。
ついでにBlendも改善バージョンを発表してもらいたいですね。
468:デフォルトの名無しさん
09/03/16 02:29:08
Silverlightで書かれたサイトって一発でわかる?
469:デフォルトの名無しさん
09/03/17 00:29:03
インストールを強制されるからね
470:デフォルトの名無しさん
09/03/17 18:36:56
C#でXPSドキュメントを弄っているけど、これって面白いな。
XpsDocument NewXpsDoc = new XpsDocument("D:\\AAAA.XPS", FileAccess.ReadWrite);
XpsDocumentWriter XpsDocWrtr = XpsDocument.CreateXpsDocumentWriter(NewXpsDoc);
XpsDocWrtr.Write((Visual)this);
NewXpsDoc.Close();
たったこれだけでWindowと配下のコントロールすべてを含むXPSドキュメントが生成されて
D:\AAAA.XPS に出力された。
VS2008かExpression Blendを使ってXAMLでサクッと注文書などの伝票フォーマットのひな形の
Windowを書いて、LINQでDBやXMLをバインディングさせてやれば、カンタンに自社ロゴ入りの
伝票なんかをXPSで出力できるな。
もうCrystalReportやQuickReport、サードパーティーのPDF帳票コンポーネントなんて不要だね。
さらにバーコードコントロールも .NET 4.0で標準搭載してくれれば・・・
471:デフォルトの名無しさん
09/03/19 03:50:47
でもC#のプログラムって商用にしにくいよね
割と簡単にソースを推論できるから
472:デフォルトの名無しさん
09/03/19 04:25:53
>>471
情報システム系の業務アプリには向いているよ。
オンライン販売やパッケージ販売のソフトウェア制作には向かないかも。
商用≠開発したソフトウェアの製品マスターのコピーを販売する
商用=商用の設備・ツールとしてソフトウェアを稼動させる
473:デフォルトの名無しさん
09/03/19 07:17:14
難読化してありゃ十分じゃね?
客先で難読化されてた奴見たけど中身を見る手間相当あがると思うけど。
動作のわかる所からクラス機能を推論して意味通る名前を当てはめるにしても全体の把握は大変そう。
一部のロジックがわかれば良くてそこだけピンポイントで調べるのには向かなそうだが。
474:デフォルトの名無しさん
09/03/19 07:21:40
VisualStudioに組み込んでくれないかな
難読化
475:デフォルトの名無しさん
09/03/19 11:06:32
商用というかメーカー製PCのバンドルソフトでも.NET利用がちらほら見かけるようになったが、
大抵ネイティブモジュールとのハイブリットだしな。
476:デフォルトの名無しさん
09/03/19 14:52:32
ネイティブと混ぜたらネイティブ部分はちゃんとブラックボックス化するのか?
あと自作したlibやdllを混ぜたらリコンパイルきかないだろう
さすがに機械コードを読んで作るやつはいるわけないし
477:デフォルトの名無しさん
09/03/19 15:34:17
GUIだけ.NETって感じ?
478:デフォルトの名無しさん
09/03/19 15:56:36
C++で書いてあるコードでも、UI部分のように、そのほとんどがAPIコールのものは解読は容易。
だいいち、そんなに解読されて困るコアのアルゴリズムがあるんだったら、それはサービス化
してSaaSで提供するとか考えるべき。
479:デフォルトの名無しさん
09/03/19 21:20:25
tabControlのタブに画像を表示させるのはどうすれば良いのですか。
このアプリのようにしたいのですが。
URLリンク(tmpgenc.pegasys-inc.com)
480:デフォルトの名無しさん
09/03/19 21:29:45
ItemTemplateプロパティで
481:デフォルトの名無しさん
09/03/19 21:40:39
>>479
TabItem.Header に Image を指定する。
<TabControl>
<TabItem>
<TabItem.Header>
<Image Source="example.jpg" Stretch="None"/>
</TabItem.Header>
....
</TabItem>
....
</TabControl>
482:デフォルトの名無しさん
09/03/20 07:25:57
481>>
ありがとうございます。
「ファイル example.jpg はプロジェクトの一部ではないか、'Build Action' プロパティが 'Resource' に設定されていません。」
となります。Resource設定はどのように行うのでしょうか。
483:デフォルトの名無しさん
09/03/20 11:30:12
>>482
Visual Studio を使っているなら、
プロジェクトを右クリック->追加->既存の項目...->イメージ ファイル->example.jpg。
ビルドアションの変更する場合は、
プロジェクトに追加したファイルを右クリック->プロパティ->ビルド アクション。
詳しくは、ここを参照。
Windows Presentation Foundation アプリケーションのリソース、コンテンツ、およびデータ ファイル
URLリンク(msdn.microsoft.com)
484:デフォルトの名無しさん
09/03/20 20:48:14
WPFの窓の中にopenglで描画したり,WPFの窓をC++で使うことは出来ますか?
485:デフォルトの名無しさん
09/03/20 21:12:32
>>484
とりあえずここを読んでみては?
WPF 移行と相互運用性 - MSDN
URLリンク(msdn.microsoft.com)
486:デフォルトの名無しさん
09/03/20 21:18:12
WPFは4.0でよくなるのかなー
Form,Silverlight,WPFどれがどうつかわれてくのかいまいちさきがみえん。
Silverlight3.0とかかなりよさげで環境を問わないWeb,デスクトップ含めたUIフレームワークとしてかなり有望そうだが。
487:デフォルトの名無しさん
09/03/20 21:46:10
>>485 読んでみます
488:デフォルトの名無しさん
09/03/20 23:24:43
機能もだが、XPで4.0がサポートされるのかどうか不安だ。
グラフィック関係の新規APIはほとんどVista以降のみ対応だからなあ。
489:デフォルトの名無しさん
09/03/21 03:38:28
SGMLは<tag> </tag>ではなく[tag][/tag]にすべきだった
<>入力するときにShiftがめんどくさいです><
490:デフォルトの名無しさん
09/03/21 08:04:07
>>483
ありがとうございます。できました。
491:デフォルトの名無しさん
09/03/21 09:30:52
WPFって時期尚早と思わない?
初心者が取っ付くには敷居が高すぎる。
ウインドウズフォームとちがって単純に貼り付けて
プロパティを操作するだけではだめだ。
インテリセンスも効かないXAMLファイルを操作しなくては
ならないし。
492:デフォルトの名無しさん
09/03/21 12:28:12
時期尚早だよ。だからこそ楽しい。
493:デフォルトの名無しさん
09/03/21 14:00:00
そういうこと。F#もいい。
494:デフォルトの名無しさん
09/03/21 14:23:11
少なくとも生産性は低いな
495:デフォルトの名無しさん
09/03/21 14:40:02
>>491
俺はC#だけで書いてる
496:デフォルトの名無しさん
09/03/21 15:06:20
確かWPFってデュアルコア6GHz時代を想定して作ったんじゃなかったっけ?
497:デフォルトの名無しさん
09/03/21 15:33:44
どう考えても、XAML + C# の方が生産性が高くないか?
498:デフォルトの名無しさん
09/03/21 15:37:54
WinFormよりXAML+WPFの法がよほど効率的だな。
499:デフォルトの名無しさん
09/03/21 15:59:55
DataGridViewさえ充実していれば…
500:デフォルトの名無しさん
09/03/21 16:01:15
次期バージョンを待て
501:デフォルトの名無しさん
09/03/21 17:56:52
>>497
>>498
何を持ってそう言える???
502:デフォルトの名無しさん
09/03/21 21:17:12
生産性を高くするためのフレームワークなんだから、低かったら使う意味ないじゃん。
503:デフォルトの名無しさん
09/03/21 23:55:26
XAMLでUIの階層分けを意識して記述できるし、
アニメーションさせなきゃならない部分があっても気軽に書ける。
504:デフォルトの名無しさん
09/03/22 00:06:30
WinFormsはデザイナでコントロールの親子関係を変更するのが面倒だったな
その点、WPFはXAMLを少し書き換えるだけなので楽だ
505:デフォルトの名無しさん
09/03/22 00:09:13
ポトペタ以上のことやろうとしたらWinFormsは簡単に破綻するでしょ。
506:デフォルトの名無しさん
09/03/22 00:59:04
XAMLはコントロールの親子関係もプロパティもすべて一覧で把握できる。
507:デフォルトの名無しさん
09/03/22 01:02:31
UIの柔軟性とソースでの視認性の双方のバランスがいいよなXAMLは
これに関してはWinFormとは段違いでいいと思う
508:デフォルトの名無しさん
09/03/22 01:12:50
>>501涙目
509:デフォルトの名無しさん
09/03/22 01:26:51
C#とxamlとで相互変換できるならVSでボタン一つで切り替えるようになるといい
それぞれのいい所取りできれば最高
510:デフォルトの名無しさん
09/03/22 01:45:40
C#の利点(リファクタリングとか)がXAMLでも完璧に使えたらとは思うが、
そのアプローチには無理があるだろう
XAML→C#は可能だろうけど、
C#→XAMLはC#のコードがXAMLに埋め込まれる事になりそう
511:デフォルトの名無しさん
09/03/22 02:10:37
>C#→XAMLはC#のコードがXAMLに埋め込まれる事になりそう
これに関してはマイクロソフト様より「技術的には可能だが非推奨」という
実務ガイドラインの見解を戴いております。
512:デフォルトの名無しさん
09/03/22 11:54:50
コードが埋め込まれたとしても、そんなところには見向きもしないでxamlで見やすいところだけ編集するんだから無問題
513:デフォルトの名無しさん
09/03/23 15:22:18
WPF Toolkit が更新されてるね。
DataGrid, DatePicker, Calendar のバグが修正されたみたい。
WPF Toolkit - March 2009 Release
URLリンク(wpf.codeplex.com)
URLリンク(blogs.wankuma.com)
↑のスクロールで列の表示が崩れるバグもしっかり修正されてたよ。
514:デフォルトの名無しさん
09/03/24 20:22:05
XAML編集でちゃんとインテリセンスが効けばいいんだけどねえ。
この辺もVS2010で改善されるのかなあ……
515:デフォルトの名無しさん
09/03/24 20:28:48
>>514
{Binding }にもインテリセンス効くようになるらしいよ
エディタも十分高機能化するそうだけど
516:デフォルトの名無しさん
09/03/25 03:46:02
VS2008でその水準に達していなかったのが最大の失策
517:デフォルトの名無しさん
09/03/25 11:40:19
>>515
>{Binding }にもインテリセンス効くようになるらしいよ
これはかなり嬉しい。
そういや、WPF Toolkitも標準で入るとか聞いたが…。
518:デフォルトの名無しさん
09/03/25 19:05:20
Windowsライクな外観を作りにくい
519:デフォルトの名無しさん
09/03/25 20:42:17
なんでWPFでウィンドウの外枠とかタイトルバー弄れないようにしたんだろ。
P/InvokeかWindowStyle.None使えってAnderson神父は言うけど面倒臭いよ面倒臭いよ
520:デフォルトの名無しさん
09/03/26 09:14:00
・C#は知ってる。
・XMLは知ってる。
・Windows Formは未経験。
この条件でいきなりWPFの勉強を
始めることは可能?
521:デフォルトの名無しさん
09/03/26 11:42:45
余裕
522:デフォルトの名無しさん
09/03/26 12:57:30
>>521
アリガト
523:デフォルトの名無しさん
09/03/26 17:27:22
>>519
<r:RibbonWindow x:Class="Window1"
</r:RibbonWindow>
リボンUIのWindowはこんな感じで実装されてるな
524:デフォルトの名無しさん
09/03/29 09:19:05
System.Windows.Controls.UserControl の再描画を抑制する方法ってありますか?
複数のプロパティを連続して変更する際に、変更するごとに再描画されるのを
回避したいんです。
525:デフォルトの名無しさん
09/03/29 12:28:31
LayoutRooからいったんRemoveし、プロパティを設定後Addするとか
526:デフォルトの名無しさん
09/03/29 19:13:40
印刷プレビューダイアログはどこにあるの?
527:デフォルトの名無しさん
09/03/30 08:47:26
System.Printing
528:デフォルトの名無しさん
09/03/30 08:49:27
ってPreviewの方か
ないんじゃないかな
作ったFixedDocument表示すればそれがPreviewになるし
529:デフォルトの名無しさん
09/03/30 18:41:53
VS2008 ExpressでWPFをかじったんだが、
WinFormと比べてデザイナがまだまだ発展途上ですね。
Web上に日本語の情報も少ないし、どうしようか。
みんなどんな開発環境でWPF遊んでる?
530:デフォルトの名無しさん
09/03/30 18:45:06
春休みだな
531:デフォルトの名無しさん
09/03/30 20:07:45
はるかな尾瀬ー
532:デフォルトの名無しさん
09/03/30 21:30:47
>>531
それは夏では
夏がくーれば思いだすー、
533:デフォルトの名無しさん
09/03/30 21:42:40
やっちまったぜ♪
534:デフォルトの名無しさん
09/03/30 22:49:41
ののこみちー
535:デフォルトの名無しさん
09/03/31 01:59:37
日本語の情報待ってろ
536:デフォルトの名無しさん
09/03/31 02:40:36
英文のドキュメントも読めない奴がこんな発展途上の分野に手を出すなと小一時間
まあ、英語でも情報少ないんだけどなw
537:デフォルトの名無しさん
09/03/31 08:33:44
WPFはなくなるの?
答えはもちろんNO!
538:デフォルトの名無しさん
09/03/31 09:25:32
1年後くらいに、Full Trusted Silverlight Applicationとかが発表されて、
トドメを刺されるような気もする。まうその方向なら今やっといて損はない気はするけどね。
539:デフォルトの名無しさん
09/03/31 09:36:28
ブラウザ上でFullTrustedなんてActiveXの二の舞だし
結局ローカルにインストールベースになると思うんだが
そうするとそれってただのWPFじゃん
540:デフォルトの名無しさん
09/03/31 13:33:39
Silverlightスレのを参考に
winformsの探し方がマズイかもしれないからどこまで正しいか分からんが・・
URLリンク(www.indeed.com)(win+forms+or+winforms)%2C+sql+wpf&l=
541:デフォルトの名無しさん
09/03/31 18:04:09
WebでWPFは流行らないだろうなぁ。
世のスキル的にもWebはPHP、Java、ASP.NETだし。
今時点で情報の少なさが普及しないってことを物語ってる。
とはいえ、デスクトップ分野ではWindowsFormはWPFに間違いなく移行する。
WPF学ぶなら情報の出そろった3年後が良いよ。
542:デフォルトの名無しさん
09/03/31 18:46:15
世のスキル的にも・・って
WPFはPHP・Java・ASP.NETの代替になるような物じゃないのだが・・・。
Silverlightの話としても、比べるべきはFlex, JavaFx (, Flash, Java Applet)じゃないか?
543:デフォルトの名無しさん
09/03/31 19:22:15
Flex, JavaFx, SLのRIA plugin組が対峙するのはAppleやGoogleが推すHTML5
544:デフォルトの名無しさん
09/03/31 19:27:06
Webのクライアントはブラウザで事足りる?
545:デフォルトの名無しさん
09/03/31 19:45:34
あれ、AppleもなんかFlash的な何か作ってなかったっけ?
546:デフォルトの名無しさん
09/03/31 19:56:18
洋書でWPFのお勧め本は何?
547:デフォルトの名無しさん
09/03/31 21:14:19
MSはxaml無視してWindowsFormの後継としてWPFを積極的に広めるべき
十分広まった後でxamlもちだせばOK
548:デフォルトの名無しさん
09/03/31 21:21:29
XAMLのないWPFなんてw
549:デフォルトの名無しさん
09/03/31 21:35:38
>>547
馬鹿
550:デフォルトの名無しさん
09/03/31 21:39:51
なんで?俺xamlなしでやってるぜ?
551:デフォルトの名無しさん
09/03/31 21:56:20
まさかXAMLを使った事がないのに、XAMLイラネって言ってるわけじゃないよな?
552:デフォルトの名無しさん
09/03/31 22:12:00
そだよ?xamlわかんねーもん
553:デフォルトの名無しさん
09/03/31 22:14:54
XMALなしのWPFプログラムは全部DOM使ってHTMLを記述するようなものだよ。
554:デフォルトの名無しさん
09/03/31 22:15:09
それだと「頑張れ」としか言えないじゃないか・・
555:デフォルトの名無しさん
09/03/31 22:37:06
全部C#でやるなんてすごいな。俺にはやり方がわからん。
556:デフォルトの名無しさん
09/03/31 23:04:07
>>329 にサンプルがあった
557:デフォルトの名無しさん
09/04/01 03:59:34
>>329を参考にして、MainWindow()内に
Image myImage = new Image();
myImage.Width = 200;
BitmapImage myBitmapImage = new BitmapImage();
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(@"D:\Unko\My Pictures\Images\hoge.jpg");
myBitmapImage.DecodePixelWidth = 200;
myBitmapImage.EndInit();
myImage.Source = myBitmapImage;
を入れて(内容はURLリンク(msdn.microsoft.com)のものです)
実行してみたのですが、真っ白なウィンドウが出るだけで画像が表示されません。
どこがいけないのかわかりません。どう書けばいいか教えてください。