5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3

1 :デフォルトの名無しさん:2009/01/09(金) 22:14:36
あたらしいGUI FW、WPFについて語るすれ。
.NET3.5 SP1 もリリースされて盛り上がってまいりますた。

Visual Studio 2008
ttp://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 3.5 Service Pack 1
ttp://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja
WPF Toolkit - October 2008 Release
ttp://www.codeplex.com/wpf/Release/ProjectReleases.aspx?ReleaseId=15598

関連スレ
Microsoft Silverlight 2.0 その3
ttp://pc11.2ch.net/test/read.cgi/tech/1227324813/

過去スレ
WPF(XAML,XBAP,.NET3.5)GUIプログラミング
ttp://pc11.2ch.net/test/read.cgi/tech/1211453941/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
ttp://pc11.2ch.net/test/read.cgi/tech/1162950198/

2 :デフォルトの名無しさん:2009/01/09(金) 22:49:52
2

3 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/01/11(日) 00:55:21
別に Vista のコンポーネントもそうだよ
つ ttp://msdn.microsoft.com/ja-jp/library/ms788757(VS.80).aspx

5 :デフォルトの名無しさん:2009/01/14(水) 14:12:25
WPF製の実用的なソフトってなに?

6 :デフォルトの名無しさん:2009/01/14(水) 15:16:13
>5
つ ttp://tmpgenc.pegasys-inc.com/ja/product/tme3.html

7 :デフォルトの名無しさん:2009/01/14(水) 18:11:15
へぇ、それWPF使ってるんだ

8 :デフォルトの名無しさん:2009/01/14(水) 18:32:45
VS2010

9 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/01/15(木) 10:02:05
VS2008はWOWで動いてるんじゃなかったっけ?

11 :デフォルトの名無しさん:2009/01/15(木) 23:02:58
つまり、x64 Windeows上では32ビットアプリもサクサク動くということなんだろう。

12 :デフォルトの名無しさん:2009/01/15(木) 23:44:43
VSにも64bitとかあったようななかったような・・・

13 :デフォルトの名無しさん:2009/01/16(金) 13:38:12
>>5
LoiloScopeもWPFじゃなかったっけか

14 :デフォルトの名無しさん:2009/01/19(月) 22:36:57
INotifyPropertyChangedを実装するクラスのプロパティをUIにバインディングしてるんだけど
プロパティの変更通知をUIと違うスレッドでしても平気なの?
実験では問題なく動いてるように見えるんだけど、フレームワーク的に想定してるの?

15 :デフォルトの名無しさん:2009/01/22(木) 15:51:42
俺は 動く=問題ない と思ってるw
でも干渉とかを心配するなら場所を1つに決めて書き直す事を勧める

16 :デフォルトの名無しさん:2009/01/27(火) 23:40:30
DispatcherObject.CheckAccess()がインテリセンスに出てこないのはなんでだろう…

17 :デフォルトの名無しさん:2009/01/27(火) 23:49:59
DispatcherObjectの全てのメンバには
[EditorBrowsable(EditorBrowsableState.Never)]属性が付けられてる
DispatcherObjectはWPFの多くのクラスが継承してて,メンバ名も抽象的で
コントロールのメンバと混ざるとややこしいから隠してるんじゃね

18 :デフォルトの名無しさん:2009/01/27(火) 23:51:54
StackPanelでコントロールを並べたいんだが、
ListBoxみたいにItemsSourceを設定する方法はない?

19 :デフォルトの名無しさん:2009/01/28(水) 00:15:07
それこそListBoxで並べりゃいいんじゃね?

20 :デフォルトの名無しさん:2009/01/28(水) 00:19:24
>>17
ああ、そういうことなんか

21 :デフォルトの名無しさん:2009/01/28(水) 19:40:00
>>19
選択できないようにできる?

22 :デフォルトの名無しさん:2009/01/28(水) 19:50:12
画像に対してテキストの回り込みの方法を教えてほしい。
HTMLならalignとかで出来るけども、回り込み的な表現を行いたい場合の
方法がわからない。
わかる方、教えてほしいです。

23 :デフォルトの名無しさん:2009/01/28(水) 20:33:07
2chは日本で一番大きな掲示板だと聞いたのですが
WPFって世界で使ってる人5人ぐらいですか?

24 :デフォルトの名無しさん:2009/01/28(水) 20:48:37
WPFを作ったチームが5人とは思えないからもう少し多いだろうな。

25 :デフォルトの名無しさん:2009/01/28(水) 20:53:03
VS2010を作ってるチームはどんぐらいなんだろう?

26 :デフォルトの名無しさん:2009/01/28(水) 20:55:47
>>25
2010人くらいじゃね?

27 :デフォルトの名無しさん:2009/01/28(水) 21:22:34
そういうことだったのか

28 :デフォルトの名無しさん:2009/01/28(水) 21:25:11
マイクロソフトと戦う2010人の開発者たち

〜 Microsoft VS 2010 〜

29 :デフォルトの名無しさん:2009/01/28(水) 21:29:14
説得力

30 :デフォルトの名無しさん:2009/01/28(水) 21:32:24
WPFにはFlashみたいな画質設定とかないのかな?
瞬間の動作は気分的な問題だから、重くならないように荒くさせてあげたいんだけど。

(だったら瞬間どうさ止めろとかなしでw

31 :デフォルトの名無しさん:2009/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:2009/01/28(水) 21:38:45
まちがえた。
public string Foo(string str)
{
  return "foo" + str;
}

こうだな。

33 :デフォルトの名無しさん:2009/01/28(水) 21:45:08
IValueConverter使えば?

34 :31:2009/01/28(水) 22:00:39
>>33
ありがと。

でもこれで表示されないのはなんで?

35 :デフォルトの名無しさん:2009/01/28(水) 22:03:38
そんなバインディングできない! 例外だ例外!
あ、例外が出たから空に置き換えときますね

36 :デフォルトの名無しさん:2009/01/28(水) 22:15:23
一週間も書き込みなかったのに急に勢いづくWPF恐るべし

37 :デフォルトの名無しさん:2009/01/29(木) 11:48:05
エクスプローラで"表示→アイコン"とした時の表示みたいに
・項目は水平に並べられる
・幅に収まらない場合は右端で折り返され、下に伸びていく
・画面に収まらない場合は垂直スクロールバーが表示される
という風にしたいのですが、下のようにWrapPanelを使っても折り返されず
右にどんどん伸びていって水平スクロールバーが出てしまいます。
どうすればいいのでしょうか?

<ListView Name="listView1">
 <ListView.ItemsPanel>
  <ItemsPanelTemplate>
   <WrapPanel />
  </ItemsPanelTemplate>
 </ListView.ItemsPanel>
</ListView>

38 :31:2009/01/29(木) 19:24:22
IValueConverterにコントロール自身を設定することはできない?
変換にはどうしてもコントロールにある情報が必要なんだが。

やりたいこととしては
名前とGUIDが入ったデータの配列があって、
名前をリストで表示したいんだが、
名前が同じでGUIDが違うデータがあったら後のデータを
「〜〜〜(2)」みたいなかんじで表示したい。



てかWPFって難しいな。

39 :デフォルトの名無しさん:2009/01/29(木) 21:46:43
>>37
WrapPanelのWidthが指定されてないから無制限に横に広がっちゃう
ViewBaseクラスのサンプルにWrapPanelの例があるよ

>>38
ConverterParameterでパラメータ渡すとか
つかIValueConverterにDictionaryとか持たせればどうとでもなるような気がするけど

40 :37:2009/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 :デフォルトの名無しさん:2009/01/30(金) 03:51:26
>>40
ListView ControlTemplate の例
http://msdn.microsoft.com/ja-jp/library/ms788747.aspx

あと、Snoop っていう WPF のツリー構造を表示するツールもあるから、検索してみると良い。
どのプロパティに値を設定すれば、どんな風になるとか、実行しながら色々試せる。

42 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/01/30(金) 22:46:41
来るVS2010ではWPF Toolkitが標準になるそうだけど
今から使ってる香具師はいる?

44 :デフォルトの名無しさん:2009/01/30(金) 23:01:22
WPFでリアルタイムにグラフを書かせたいのですが、どうすればいいでしょう?
グラフは

N分間の受信データをグラフに表示する
グラフにはN点で表され、それぞれの点は対応する時間(分)での最終データを表す
毎秒数回データを受信し、その都度グラフに反映する
ときどき値域が変化しその都度全体を再描画する

こういうものです

45 :デフォルトの名無しさん:2009/01/30(金) 23:07:38
普通にタイマーでまわした方が妥当じゃない?
「変わったときに」と指定するなら、タイマーで前回と差が出たら〜にすればいいと思うし、
それに全体をっていうのが引っかかるけど、やっぱ作画した上から瞬間のデータを書いてやるのが一般的。

46 :デフォルトの名無しさん:2009/01/30(金) 23:53:24
データの送受信タイミングを受信側が制御するならタイマー
データの送受信タイミングを送信側が制御するならコールバック

47 :デフォルトの名無しさん:2009/01/31(土) 00:00:30
WPFの入門書はどれがいいでしょう?

48 :デフォルトの名無しさん:2009/01/31(土) 10:58:12
ダブルパフィーの超技巧テクニック第2版中国版

49 :デフォルトの名無しさん:2009/01/31(土) 11:44:26
「XAMLプログラミング」

Microsoft株式会社 川西裕幸 高橋忍 著
ISBN978-4-7973-3916-1

50 :デフォルトの名無しさん:2009/01/31(土) 13:05:52
WPFエッセンシャル買ってみたけど、このフレームワークの背景とか
意味とかはふむふむと興味深い点も多かったけど、正直実践にはあまり
役立ちそうにない本だった。

51 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/01/31(土) 15:46:20
>50
俺も読んだけど、ことWPFに関して言えば、フレームワークの背景に有る
考え方を知る事の方が重要だと思った。今までとかなり違うからね。

53 :デフォルトの名無しさん:2009/01/31(土) 16:35:35
XAML、よいんだがBindingの記述とかなんか直感的じゃないんだよなぁ・・・

54 :デフォルトの名無しさん:2009/01/31(土) 18:33:08
確かにエッセンシャルWPFはイマイチだった。
2005年にでたプログラミングWPFのほうがいい。(ベータ版が対象だが)

55 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/02/01(日) 00:02:07
よくわからんのだが
XAMLというのはクラスのメンバの値の設定をマークアップ言語?で記述してる
って解釈でいいの?
それ以外なにか特徴ある?

どこ見てもいきなり文法の説明っぽいのばっかりでいまだに全体像がつかめない

57 :31:2009/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 :デフォルトの名無しさん:2009/02/01(日) 00:38:55
>>56
すっごーく乱暴に言えばHTML/CSS+JavaScriptとXAML+C#/VB.NETで対応する感じ。

59 :デフォルトの名無しさん:2009/02/01(日) 00:55:51
>>56
その解釈で合ってるよ。タグ名がクラス名に該当する。
属性がプロパティ

WPF以外のクラスも生成できる


60 :デフォルトの名無しさん:2009/02/01(日) 00:59:42
コードを生成してるんじゃなくて実行時にパースしてるんだけどな

61 :デフォルトの名無しさん:2009/02/01(日) 01:16:29
新しくウィンドウ作るとデフォでpublic classとして作られるんだけど
internalじゃなくてpublicなのは何か理由あるの?

62 :デフォルトの名無しさん:2009/02/01(日) 01:35:06
>>51
ItemTemplateの方で記述すべきことじゃね?

>>57
そりゃConverterに先祖は存在しないだろう

63 :デフォルトの名無しさん:2009/02/01(日) 02:17:07
WPFのWindowをWindows.FormsのRegionみたいに範囲を指定して穴空けたり削ったりしたいのだけど
対応するプロパティってどれでしょうか?
ClipとかVisualClipかなと思ったのだけどうまくいかなくて。

64 :57:2009/02/01(日) 06:49:58
>>62
どうすればコントロールの依存プロパティにアクセスできる?

RelativeSourceについていまいち理解できてないんだが
いいサイトないかい?

65 :デフォルトの名無しさん:2009/02/01(日) 11:22:56
>>64
やりたいことの大枠は分かったけど実現方法が間違ってる感じがするよ
表現したいデータとUIを説明してくれれば助言できるかもしれない
38だけじゃ抽象的過ぎる

66 :57:2009/02/01(日) 13:51:08
>>65
「こんなデータも表現できるのかな」ってのをやってみただけだから
特に何か目的があって作っているわけではないんだ。

過去にC#(非WPF)の仕事で扱ったデータ構造を参考にしたんだが。

67 :デフォルトの名無しさん:2009/02/01(日) 14:21:36
だから、多分表現できる、ただ表現の仕方がまずいだけだろうっていってるのよん
目的? 「こんなデータも表現できるのかな」で十分じゃん

68 :デフォルトの名無しさん:2009/02/01(日) 16:10:34
つかどうでもいいって思ってるなら聞くなよ

69 :デフォルトの名無しさん:2009/02/01(日) 16:11:59
もしかしてWPFってxaml使わなくてもOK?
C#だけで書けるんならそのほうがやりやすい気がするんだが
xaml使うメリットってなんなの?

70 :デフォルトの名無しさん:2009/02/01(日) 16:20:12
XAML使わない方が圧倒的に面倒
試してみた俺が保証する

71 :デフォルトの名無しさん:2009/02/01(日) 16:22:20
C#で書くと階層構造作るのが面倒臭すぎる
後で解読不能

72 :デフォルトの名無しさん:2009/02/01(日) 16:35:53
XAMLでロジック作労とするとこれがまた面倒なんだよな・・・

73 :デフォルトの名無しさん:2009/02/01(日) 17:05:34
混ぜて使うのが普通だろ。
前のスレにXMALなしのサンプルがあったが、アップローダーからは消えてるな。
HTMLをjavascript+DOMで動かすようなもの。

74 :デフォルトの名無しさん:2009/02/01(日) 17:49:57
UIとロジックを徹底的に分離しようと意識して書いてみたら結構いい感じになった
ような気がする。
BindingとかStyleとかコマンドとか、理解が進むと便利な仕組みだと実感できる。

75 :デフォルトの名無しさん:2009/02/01(日) 20:38:26
UIとの分離については、RoutedCommand が重要なポイントだと思う。
C#側でコマンドをずらずら書くところをもうちょっと綺麗にしたいけど。

76 :デフォルトの名無しさん:2009/02/01(日) 21:43:51
xamlって、Cocoaでいうnibみたいなもん?


77 :デフォルトの名無しさん:2009/02/01(日) 22:32:12
>>70,71
C#に対する利点ってどんなところ?
何が書きやすくなるの?

78 :デフォルトの名無しさん:2009/02/01(日) 22:44:39
やってみればいいじゃん。
WPFはどっちのやり方も使えるように設計されている。

79 :デフォルトの名無しさん:2009/02/01(日) 22:49:40
一回好きなようにXAMLで書いてみて,それをC#で書き直してみたらいい

アニメーションとか死ねる

80 :デフォルトの名無しさん:2009/02/02(月) 00:29:06
画面の位置、階層構造 XAML>C#

ロジックや複雑な関係構築 XAML<C$

81 :デフォルトの名無しさん:2009/02/02(月) 00:30:03
どっちもナイス VB

82 :デフォルトの名無しさん:2009/02/02(月) 00:50:25
XAMLって言語なんですか?
個別に本を買って勉強した方がいいですか?
これやりたくて今C#勉強してるんですけど、道のりは長いですね

83 :デフォルトの名無しさん:2009/02/02(月) 01:46:19
>XAMLって言語なんですか?
XMLベースの宣言的言語

84 :デフォルトの名無しさん:2009/02/02(月) 01:58:25
別にWinFormsのような感覚でやっててもいいわけだし

85 :デフォルトの名無しさん:2009/02/02(月) 02:15:21
>>82
XAML は言語といっても HTML みたいなものだから、そんなに難しくはないよ。
見たり書いたりしているうちに、すぐに慣れると思う。

86 :デフォルトの名無しさん:2009/02/02(月) 03:08:29
>>85
静的なものはいいんだ
問題はバインド関係
正直リソース系のあの宣言方式はどうにかならんかったのかと

87 :デフォルトの名無しさん:2009/02/02(月) 13:20:19
MouseBindingで、(None or Shift or Ctrl or Shift + Ctrl)+左クリックを表すには
4通り全て書く以外方法は無いですか?

88 :デフォルトの名無しさん:2009/02/02(月) 13:52:33
そうやってROでくくってやれば1通りの書き方で収まってると思うんだけど?

89 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/02/02(月) 19:29:18
質問
XAMLの階層構造ってなんですか?

91 :デフォルトの名無しさん:2009/02/02(月) 23:37:31
画面の階層構造

92 :デフォルトの名無しさん:2009/02/03(火) 11:54:59
>>71

そっかなあ。HTMLドキュメントをDOMで操作すること考えたら、
アーキテクチャの設計次第では大したことないと思うが。

第一、いまどきGUIの設計はRADユーティリティ利用が当たり前で、わざわざ
コード書くバカいないだろ。windows formのときにそんなことしてた?

93 :デフォルトの名無しさん:2009/02/03(火) 15:06:40
だからそのデザイナが生成するコードがC#じゃなくてXAMLになっただけだよ
Designer.csなんてちょっと複雑になると人間が読むのが難しくなるし
必要に応じて修正することもできない

94 :デフォルトの名無しさん:2009/02/03(火) 15:54:12
一回デザイナのコードが壊れると、デザイナのウィンドウに
ブラウザの「ネットに繋がってません」的なコードを表示するようになる
これがコントロール関係でのエラーだと修復はほぼ不可能

95 :デフォルトの名無しさん:2009/02/03(火) 16:05:19
XAMLなら言語に依存しない
VBだろうとC#だろうとIronPythonだろうと同じデザイナが使える

96 :デフォルトの名無しさん:2009/02/03(火) 16:17:27
XAMLはずらっと項目が並んだプロパティウインドウをちまちまクリックするのは面倒くさいだけだと気付かせてくれた点で(作る側的に)UI革命

97 :デフォルトの名無しさん:2009/02/03(火) 17:02:51
XAML採用の理由は、半分ぐらいExpression Blend用だろ。

98 :デフォルトの名無しさん:2009/02/03(火) 18:24:55
Expression Blendだけ高すぎる・・・
せめてExpression Webくらいの値段にしてくれ

99 :デフォルトの名無しさん:2009/02/03(火) 19:03:36
あんなもん売れても無いからそのうちVSに統合されるよ

100 :デフォルトの名無しさん:2009/02/03(火) 19:46:10
ttp://japan.zdnet.com/news/os/story/0,2000056192,20387503,00.htm
> 特にVistaに組み込まれた画像描画機能であるWPFの利用が伸び悩んでいることに触れて

自分らは使ってないくせに、どの口が言うか


101 :デフォルトの名無しさん:2009/02/03(火) 19:49:25
VS2010で使われるよ

102 :デフォルトの名無しさん:2009/02/03(火) 20:20:56
基本XAML無しで追加機能としてXAMLも使えるよ的に出してればもう少し使われたかも。
いきなりUIだけ別言語使えとかハードルが高すぎたんだ。

103 :デフォルトの名無しさん:2009/02/03(火) 20:23:01
そもそも今まではUI作るのに開発言語なんか使えなかっただろ
いままで通りデザイナで作るのに加えて,オプションとしてXAMLを直接いじることもできるようになった

104 :デフォルトの名無しさん:2009/02/03(火) 20:31:30
WPFがココまで使われないとは正直思わなかった。
おそすぎんだよな。きびきび動いてたら色々と使う所も出てきたと思うけれど。
Longhorn時代に出ていた想定アプリケーションはどこへ行った屋ら

105 :デフォルトの名無しさん:2009/02/03(火) 20:33:47
>>102
昔だってダイアログはリソーススクリプトで別だったじゃないか。
まあ手書きなんてやらないけど。

106 :デフォルトの名無しさん:2009/02/03(火) 21:07:31
そもそもデスクトップアプリの数が増加どころが淘汰・減少気味だからなぁ。
数だけでいえばデスクトップのWPFアプリよりもブラウザベースのSilverlightの圧勝になりそう。
機能限定とはいえOffice移植はインパクトでかいよ。

とはいえWPF製デスクトップアプリも無いわけじゃない。
Xperfは最近やたら見かけるようになってきたし。
Windows 7付属のPowerShell統合環境も確かWPF製。

MS以外だと映像系で即戦力として使われてる感じ
ttp://loilo.tv/ とか >>6 が書いてた ttp://tmpgenc.pegasys-inc.com/ja/product/tme3.html とか


107 :デフォルトの名無しさん:2009/02/03(火) 21:59:59
>>100
普及させたいならまずExpressionタダにしろよ

108 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/02/03(火) 22:08:48
>>104
WindowsXPで走らせるとモッサリするからな。
WPFが増えるには、WindowsXPの比率が下がらないとね。

Beta1で評価が高いWindows7、製品版の完成度と出来映えに掛かる!

110 :デフォルトの名無しさん:2009/02/03(火) 22:55:34
>>108
まぁ要するに、公開当初のコントロールが不十分で
しかもVS2008のエディタがdでも無く貧弱だった
これに尽きる

上の方でちまちまフォーカスしてプロパティ設定するより直打ちがいいとか抜かしてるのいるけど
直打ちじゃそもそもどんな属性があるのか「その場」で分からんじゃないか
とか言うと「最初にヘルプ嫁ボケ」とか言われそうだが、昔から読み辛いのに定評あるだろヘルプは
ただでさえ作法違うんだから、一目瞭然にすべきだった

111 :デフォルトの名無しさん:2009/02/03(火) 23:13:57
プログラムでビットマップデータ変更すると即座に表示に反映される、ってことしたいんだけど
WPFだとどうすればいいの?

112 :デフォルトの名無しさん:2009/02/03(火) 23:17:43
どのレベルで分からないのさ?

113 :デフォルトの名無しさん:2009/02/03(火) 23:22:24
>>111
WriteableBitmap?とエスパーしてみる

114 :デフォルトの名無しさん:2009/02/03(火) 23:26:39
WPF,xamlまださわったことないんだ
だからどのレベルといわれてもw

WriteableBitmap?ぐぐってみる、ありがとう
エスパー大好き^^

115 :デフォルトの名無しさん:2009/02/03(火) 23:26:49
Dependecyつかえば?

116 :デフォルトの名無しさん:2009/02/04(水) 00:12:43
Dependency?
依存関係プロパティとかいうやつですか?
勉強してみます
ありがとう

WriteableBitmap、チョイ見た感じわかりやすそうでいいですね
DirectX?やってるような気分になる
ほんとエスパー大好き^^

117 :デフォルトの名無しさん:2009/02/04(水) 00:27:16
>>110
なんでMSってヘルプ作るのこんなに下手なんだろうな

118 :デフォルトの名無しさん:2009/02/04(水) 00:30:09
形にこだわってるという印象がある
体裁ととのってればよし、みたいな

119 :デフォルトの名無しさん:2009/02/04(水) 01:50:23
伸びてると思ったらこれか!

120 :デフォルトの名無しさん:2009/02/04(水) 16:56:24
>110
xaml直打ちはありえんな。今時ウェブデザイナでもそんなことはせん。

そもそも「UIとロジックの分離」ってのが胡散臭すぎる。
ウェブの世界では確かにUIはデザイナが作ってるけど、そもそも商用パッケージ
製品でもない限り、デスクトップアプリケーションの世界UIデザインとロジックを分
離して別々の間が作るなんてあり得ない絵ゾラごとだとおもう。
xamlはxbapとかsilverlight専用でいいよ。

121 :デフォルトの名無しさん:2009/02/04(水) 20:45:21
>>117
 osx になってから、Appleの開発者サイトは見やすくなった。


122 :デフォルトの名無しさん:2009/02/04(水) 20:48:34
>>117
互換性ってのを気にしてるんじゃない?
Macはそこらへん無視だから作り直したりできるけど、MSは数十年前からの積み重ねだから自由が利かないんじゃない?

123 :デフォルトの名無しさん:2009/02/04(水) 21:17:40
>>120
多人数開発が当たり前のデスクトップアプリケーションで、UIとロジックをろくに分離せずに開発するとか完全に死亡フラグ

124 :デフォルトの名無しさん:2009/02/04(水) 22:25:43
>>123

画面設計とバックエンドを分離することはあるが、UIと「UIにまつわる」ロジックを
分離するなんてありえんだろ。

125 :デフォルトの名無しさん:2009/02/04(水) 23:01:33
>>124
モデル部、モデル部と連携するUIイベントハンドリングと相互作用、UIでの表示とイベント操作を行うコントロールは分離可能。
WPFでのXAMLは2と3の分離

126 :デフォルトの名無しさん:2009/02/05(木) 08:27:38
>>125

MVCの役割をキチンと分離して見通しがよく、相互に影響の少ない
プログラミングを、なーんて話と、実際にを分離・分業で作成して
うまくいくかどうかって話はべつもんだろ。
UIの入出力なんてそもそも不可分いったい何だから、「分けましょう」
なんて教条主義ふりかざしたところでうまくいかんものはいかん。

デザインがプログラミングとは別に意味を持つwebの世界ならともかく、
デスクトップアプリケーションでV,C分離して分業する意味もないし、
そんなことして品質と生産性が保てるとは思えん。

理想論としては分業しなくても極力見通しよく設計する方がいいのは
確かだけれど、
・分業するためにはVCをきっちり分離しておかないと という話と
・分業も必要ないのに VCをがちがちに分けすぎたものが果たして
使いやすいのか? という話を混同してない?

127 :デフォルトの名無しさん:2009/02/05(木) 08:56:36
>>126
いや、業務アプリでも捨てコードとかでないならきっちりやっとくべきだと思うけどね。
動かしたあととかに色々変えてくれとか言うものも出てくるはず。その中にはきちんと分離しておけばZAMLレベルの修正で住むものも宅差なると思われ。
ドメインモデルとのやりとりはUIの中のVからはやったらあかん。

128 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/02/05(木) 16:13:42
>・V,Cは別々の人が設計すべき→・だからXAMLがいいんだ
これが違うというのは同意。また分業しないほうがよいというのも同意。

でも仕様が不明確で肯定がグダグダになるのとMVCなどで分離するかどうかはまた別のはなしかと。

どうせ全員一致のMVCの定義すらないわけだしそこらへんの言葉遊びしても意味ないかと。
WinFormsよりはWPFのほうがいずれにしてもUIとモデル部などを分離しやすいのは確かだし。
仮に分業目的でなくてもWPFでの分離の仕方はそれなりにいいと思う。その手段としてXAMLがあるわけだが、それは必須条件じゃないし。

130 :デフォルトの名無しさん:2009/02/05(木) 16:40:28
http://quince.infragistics.com/
ここ面白いな

131 :デフォルトの名無しさん:2009/02/05(木) 17:19:19
>>130
かなり面白いな。
どっかにサンプルソースがないのかねぇ…。みつけられんかった。

132 :デフォルトの名無しさん:2009/02/05(木) 21:32:15
>>130
愛用のoperaじゃぴくりともう五課ねぇ・・・

133 :デフォルトの名無しさん:2009/02/05(木) 21:43:06
>>132
さぁ、Opera 10 alphaを入れるんだ

134 :デフォルトの名無しさん:2009/02/05(木) 23:09:02
>>130
何が面白いんだよ馬鹿しかもSilverlightだからスレ違いだろボケ

135 :デフォルトの名無しさん:2009/02/05(木) 23:25:41
見たけどページはSilverlightだけど中身はWPFじゃん
HTMLはスレ違いとかならかわいげがあるが

136 :デフォルトの名無しさん:2009/02/05(木) 23:37:06
両方あるんだけど、、、

137 :デフォルトの名無しさん:2009/02/06(金) 00:02:56
ソースもあれば最高なんだけどな

138 :デフォルトの名無しさん:2009/02/06(金) 14:19:44
VirtualizedWrapPanelが無いのはなぜなんだ…

139 :デフォルトの名無しさん:2009/02/06(金) 14:32:06
僕らが車輪の新生産を出来るように。

140 :デフォルトの名無しさん:2009/02/06(金) 21:40:48
StackPanelは画面内に収めるのが普通だから

141 :デフォルトの名無しさん:2009/02/07(土) 03:47:15
System.Windows.FormsのLocationに相当するものはWPFのコントロールにはないの?

142 :デフォルトの名無しさん:2009/02/07(土) 04:43:18
Canvas

143 :デフォルトの名無しさん:2009/02/07(土) 12:58:41
WPFにもなってLocationなんて指定する奴はWPFの存在意義がわかってない

144 :デフォルトの名無しさん:2009/02/07(土) 13:06:59
XAMLでブール値を設定するにはどうしたらいい?
〜〜〜="True"
じゃぁ文字列になってしまう。

145 :デフォルトの名無しさん:2009/02/07(土) 15:16:51
WPFってエフェクトさえ使わなければ軽い気がしてきた

146 :デフォルトの名無しさん:2009/02/07(土) 15:48:49
3.5はシェーダ使うようになったからエフェクト軽くなったらしいけど

147 :デフォルトの名無しさん:2009/02/07(土) 19:15:47
>>142
ありがとう

>>143
なんで聞いてるか理解できないならどっかいけ

148 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/02/08(日) 18:40:59
ウィンドウの大きさを変化させたとき
右下に配置したボタンがずっと右下にあるようにするにはどう設定すればいいですか?

150 :デフォルトの名無しさん:2009/02/08(日) 22:33:09
Grid使うとか,DockPanelで下にStackPanel { FlowDirection = LeftToRight }配置してその中に入れるとか
WinFormsのDockみたいな考え方はしない

151 :デフォルトの名無しさん:2009/02/08(日) 22:36:55
間違えたRightToLeftだった

152 :デフォルトの名無しさん:2009/02/09(月) 00:45:24
>>149
VerticalAlighnment="Bottom", "HorizontalAlignment="Right"
じゃだめなの?

153 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/02/09(月) 01:00:58
>>149 だった訂正

155 :デフォルトの名無しさん:2009/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でやる
サンプルプログラムを
http://www.mperfect.net/wpfAugReal/
で公開したんだ。

俺はこれは使える!と思ったんだけど、brains-N-brawnさんのコードはARToolkitPlusの
色々な機能を試していて軽量なサンプルとは言い難い物だった。それで、自分でARToolkitPlus+DirectShow.NET+WPFの組み合わせの最低限の内容を持って十分に整理された
スケルトンコードを書いてみた。こいつは特別なライブラリを導入しなくてもVisual C# 2008
のみでビルド可能でしかも3D部分はWPFだし、WPFだからGUIとの連携も容易だしで、
これからARを始めようとする人にはサンプルとして比較的向いているかもしれないと思う。

そんなわけでコードは
http://sites.google.com/site/augmentedrealitytestingsite/download
ここに置いてある。あと、http://www.nicovideo.jp/watch/sm6074669にデモ動画を
アップしてみたけど、ミクさんとかの面白いネタがあるわけじゃない。

ニッチ市場向けの内容なのに長文ですまない。せっかくだから誰かが活用してくれるとうれしい。

156 :デフォルトの名無しさん:2009/02/09(月) 12:31:01
>>150,151,153,154
ありがとうございます
Dock、Dockの階層化でやってみて所望の動作ができることを確認しました

>>152
やってみ

157 :デフォルトの名無しさん:2009/02/09(月) 15:36:09
>>156
152です。
<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
        <Button Width="120" Height="80"
                HorizontalAlignment="Right" VerticalAlignment="Bottom"
                Margin="0,0,10,10">Button</Button>
</Window>
じゃ駄目なの?と思ったんだけど、実際にはほかのコントロールも配置するんだから
実際にこんなコードにはしないね、確かに。

158 :デフォルトの名無しさん:2009/02/09(月) 18:56:36
>>117
なんでTipsみたいなものをもっと大量に用意しないんだろうな。
ネットであさったりあれこれ実験したり、(それこそこういうとこで聞いたり)に
多くの人間がどれだけ無用な時間を取られていることか。


割く人員が少ない(天下のMS様だがそういう金はなぜかない)とでもいうのなら、例えば適当な学生を複数雇って、
よくあるタイプのフリーソフトを指定して(この「ちょっと高機能な関数電卓ソフト」の類似品を1からWPFで作ってみてくれ)
わかりにくかった点はどこで、どう解決したのレポートを書かせて、
適当にリライトしてアップすればいい。
「ただでも習得しようと思っていたところ」だというので、
1本十万円とか1ページ1万円くらいでバイトとして喜んでやる奴幾らでもいるだろう。
節約したいならインドあたりの工科大の学生とかでいいわけで。

「WPFでこれらの見た目も機能もカラフルな数々の便利ソフトがすぐ出来ます。
全ソースと整理されたわかりやすい解説はこちらのページ群をご参照」
使う気になる人間・会社、ぐっと増えるんじゃないんだろうか。
そういうことをほとんどせず>>100

159 :デフォルトの名無しさん:2009/02/09(月) 19:10:27
金というか資本主義じゃなかったら今だにマンモス狩ってるだろjk

160 :デフォルトの名無しさん:2009/02/09(月) 19:16:25
技術オタク万歳
ゲーム廃人よりたちが悪い。
そこに付け込んだのがWPF
つかわなきゃいいだけ

161 :デフォルトの名無しさん:2009/02/09(月) 20:53:10
今日、渋谷の書店でWPFの書籍を買おうとした
かなり品ぞろえが悪かった(3,4冊くらいしかなかった)
WPF大丈夫なのか?
不安になって本買うのやめた

162 :デフォルトの名無しさん:2009/02/09(月) 21:10:00
まずは、WPFのなんたるかから勉強しろ。
哲学みたいなもんだ

163 :デフォルトの名無しさん:2009/02/09(月) 21:30:56
>>158 とか >>160-161 みたいのは、PHPやRubyだけやってればいいと思うよ。いやマジで。

164 :デフォルトの名無しさん:2009/02/09(月) 21:34:08
本買わなかっただけでその仕打ちorz

165 :デフォルトの名無しさん:2009/02/09(月) 22:09:11
いいんじゃん自分だけわかるみたいなこと言わせておけば
使う人少なければ開発続かないだけだし


166 :デフォルトの名無しさん:2009/02/09(月) 22:37:20
デスクトップUIの技術自体がもうそれほど重要視されない時代で、なおかつ、
MS系技術がやたらめったら嫌われる傾向の日本では、今後も流行ることないから、
日本語ドキュメントが山ほどあるみんなが使っているものを触らないと落ち着かない人であるとか、
マイナーなものに手を付けることを、今後(その技術のエッセンスがどっかで生き残るだけじゃなくて)
その製品自体が普及するか否かだけで不安になる人は、来ないほうがいいよと言ってあげただけ。

167 :デフォルトの名無しさん:2009/02/09(月) 22:44:29
サンプル山ほどあるだろ

168 :デフォルトの名無しさん:2009/02/09(月) 22:49:57
ほんとその通り。
UI技術に投資するなんて無駄なだけ。
もっとやるべきことがある

169 :デフォルトの名無しさん:2009/02/09(月) 23:24:52
勉強すればいいと思ってる馬鹿は大抵学歴が高い傾向にある
本質がわからない。辿りつけない層であり、GDPを上げるために仕込まれた人口比率の最も多い層でもある
プログラミングすらしないで目的を達成させることのほうが大事
お前の言っているやるべきこともたぶん糞


170 :デフォルトの名無しさん:2009/02/09(月) 23:36:27
>プログラミングすらしないで目的を達成させることのほうが大事
そりゃそうだが、プログラミングする以上はちゃんと勉強しろよ

171 :デフォルトの名無しさん:2009/02/09(月) 23:46:35
軍事技術が優先だったけど今はそいつらが集まって自動でアプリケーションを作りだす人工知能の開発に本気になってるから
それまで待ってろ。もう50年もすれば人がいらなくなる

172 :デフォルトの名無しさん:2009/02/09(月) 23:51:36
>>171
その頃ロシアでは ウォッカの生成方法を考えるAIの研究をしていた

173 :デフォルトの名無しさん:2009/02/10(火) 00:41:09
>>171
未来の二つの顔だな
あれの中ではナイスなAIのおかげで皆働かなくてよくなったとなってたが、もし実現しタラ超格差になるだけのような気がする。

174 :デフォルトの名無しさん:2009/02/10(火) 01:08:05
俺はWPFに賭ける
今すごい使い方を編み出せばMSからMVPをもらえるかも知れん
やってやるぜ

175 :デフォルトの名無しさん:2009/02/10(火) 01:18:21
>>174
釣り針垂らしてスレチの阿呆に餌を与えようとするなw

176 :デフォルトの名無しさん:2009/02/10(火) 08:14:56
>>155です。
せっかくなのでARToolkit+DShowNET+WPFでミクさんネタもやってみました。
まあ、このネタはもうやりつくされた感がありますが。ミクさんxamlにしたよー。疲れた。
 
http://www.nicovideo.jp/watch/sm6099189
http://sites.google.com/site/augmentedrealitytestingsite/download (コード)
 
UIとかあんまり関係ないプログラムになっているけれど、WPFってUIのフレームワーク
なのにビットマップエフェクトと3Dを宣伝文句にする姑息な事してきたわけだから、
3D描画に酷使してやれば本望だと。それに前にも書いたけど本家ARToolkitがGLUT
べったりなのに対してWPFを使っているのでこのコードをスケルトンとして作ったプログラム
ではバインディングなどのWPFの恩恵を受け易い。・・・はず。

177 :デフォルトの名無しさん:2009/02/10(火) 22:40:41
CAG for WPF 日本語版出てたのね。
ttp://msdn.microsoft.com/ja-jp/library/dd365013.aspx



178 :デフォルトの名無しさん:2009/02/10(火) 22:54:52
WriteableBitmapとBitmapなにがちがうですか?

179 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/02/12(木) 04:21:50
>>179にレスが付かなくて(179は俺ね)連投みたいになってもうしわけないんだが、
Storyboardを使ってミクさんをアニメーションさせたので、またコードと動画を貼っておく。
 
http://sites.google.com/site/augmentedrealitytestingsite/download
http://www.nicovideo.jp/watch/sm6116619
http://www.nicovideo.jp/watch/sm6117872
 
WPFって一応今の流行だと思うんだけど、何でこんなに過疎ってるの?

181 :デフォルトの名無しさん:2009/02/12(木) 04:54:52
必ずしも必要なものが出現するとは限らない
社員を遊ばせておくぐらいなら何かを作らせた方がいいという時だってある
Vista、C#、WPFなんかがそれに当てはまる。

182 :デフォルトの名無しさん:2009/02/12(木) 07:14:01
>180
これって、描画領域になんか重ねたりとかも出来るの?

183 :デフォルトの名無しさん:2009/02/12(木) 07:31:00
>>182
Canvasの上にViewport3Dという構成だからCanvasに重ね描きするかその上に別のコンテナを乗っけてViewport3DとZオーダーを調節すれば良いんじゃない?ソースあるから適当にいじってみて。

184 :デフォルトの名無しさん:2009/02/12(木) 11:19:15
visual studioで app.xamlのstartupUriに指定されたウィンドウのxamlファイルの
ファイル名を変更しても、リファクタが効かず、毎回手で変更しないといけない
のですが、これってバグですか?
ファイル名ではなくクラス名としてのwindow1の名を変更したときにはちゃんと
xamlにも変更を反映してくれるので、技術的な問題と言うよりも、忘れられちゃった
としか思えないんですが。

みなさん、デフォルトの"window1.xaml"のまま使っているんでしょうか?

185 :デフォルトの名無しさん:2009/02/12(木) 11:27:29
>184
C#の仕様上はファイル名と中のクラスには何の関係もないんだから、
中に記述されていうクラスのクラス名を変えないとリファクタリングは
効かないに決まっている。ただ、その場合もxamlの記述までは置換され
なかったような記憶があるけれど。

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

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

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

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

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

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

194 :デフォルトの名無しさん:2009/02/12(木) 17:14:34
ttp://msdn.microsoft.com/ja-jp/library/system.windows.interop.imaging.createbitmapsourcefromhicon.aspx

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

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

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

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

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

ttp://headlines.yahoo.co.jp/hl?a=20090213-00000000-zdn_ait-sci

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

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

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


ついでにこれ貼っておきますね
http://japan.zdnet.com/news/internet/story/0,2000056185,20388173,00.htm

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

チートっぽいけどこれ?

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

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

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

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

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

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

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

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

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

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

231 :デフォルトの名無しさん:2009/02/17(火) 20:19:01
http://blogs.msdn.com/adam_nathan/archive/2005/10/24/using-com-interop-to-create-a-wpf-visualization-for-windows-media-player.aspx
ここからダウンロードできる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は
http://msdn.microsoft.com/en-us/windowsmedia/bb190309.aspx
から手に入るみたい。

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

>>245
そのとおりです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

261 :デフォルトの名無しさん:2009/02/18(水) 13:47:07
http://msdn.microsoft.com/ja-jp/library/aa970683.aspx
このへん読め
理解できないなら理解できるようになってから気にすればいい

262 :>>243:2009/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 :デフォルトの名無しさん:2009/02/18(水) 15:42:50
わからん
Drawing系の要素、なんて言葉どこにもでてこない
textBlockとかいうのつかったほうがはやいってことか?

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

276 :デフォルトの名無しさん:2009/02/19(木) 22:43:21
>>275
クラス名でググった方が早くね?
http://www.google.co.jp/search?q=System.Diagnostics

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

動画:http://www.nicovideo.jp/watch/sm6242828
ソース:http://sites.google.com/site/augmentedrealitytestingsite/download
のWMPEmitMiku.zip

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

331 :デフォルトの名無しさん:2009/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#''
http://www.mperfect.net/wpfAugReal/
その部分だけ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 :デフォルトの名無しさん:2009/02/23(月) 23:58:25
ごめん、改行が変になって読みにくくなった。

333 :デフォルトの名無しさん:2009/02/24(火) 00:00:05
Windows フォトギャラリーで露出とかコントラスト調整すると
スライダーの移動に合わせてほぼリアルタイムに描画されるんですが、
この機能を自作 WPF プログラムに実装したい場合どうすればよいでしょうか?






334 :デフォルトの名無しさん:2009/02/24(火) 00:07:08
WriteableBitmapでも使って更新しまくれとしか答えようがない
画像処理自体はスレ違い

335 :デフォルトの名無しさん:2009/02/24(火) 00:10:59
詳しくないんだが、一応バインディングとかINotifyPropertyChangedインタフェースとかの話題じゃないか?

336 :デフォルトの名無しさん:2009/02/24(火) 00:17:39
ビットマップの方更新するだけでよかったはず

337 :デフォルトの名無しさん:2009/02/24(火) 00:19:37
どのタイミングで更新、っていいたいんじゃ?

338 :デフォルトの名無しさん:2009/02/24(火) 00:22:30
ダイナミックリソースとかバインディングじゃないの?

339 :デフォルトの名無しさん:2009/02/24(火) 00:22:59
>>331
を、便利な物を作ってる人がいたんだ!。
ARには興味あったのでいじくってみる。

ソース読ませていただきます。

340 :デフォルトの名無しさん:2009/02/24(火) 00:24:30
よし、リフレクタの出番だ。
http://www.red-gate.com/products/reflector/

341 :デフォルトの名無しさん:2009/02/24(火) 00:27:05
ほんとにビットマップ更新するならバインディングじゃどうしようもない
SliderのValueChangedイベント使うくらい

342 :デフォルトの名無しさん:2009/02/24(火) 00:38:30
結局C#なのね

343 :デフォルトの名無しさん:2009/02/24(火) 00:43:21
>>333の言いたいことってこういうこと?
http://blogs.wankuma.com/kazuki/archive/2009/01/12/166166.aspx

344 :デフォルトの名無しさん:2009/02/24(火) 09:29:03
>>323はタブーに触れて消されちゃったんだなあ。

345 :デフォルトの名無しさん:2009/02/24(火) 20:55:23
入力可能なDataGrid風ListView↓使ってる人っている?

ttp://pro.art55.jp/?eid=908012
ttp://d.hatena.ne.jp/Yamaki/20070706/1183688885

テキストの編集中、右クリックでTextBoxデフォルトのContextMenuを開くと
TextBoxがキーボードフォーカスを失い、編集モードを終えてしまうんだけどそういう風にはならない?
ContextMenuのアイテムも選択できない。

346 :333:2009/02/24(火) 22:01:41
おまえら、エスパーすぐるw

>>343 そこを参考にして画像ビューワーを作ってて、
>>341 のイベントで、
>>334 の方法で自前で露出の調整をしたら、
イベントの処理に5秒もかかっちゃって、
がんばって最適化しても1秒を切ることができなくて、
ためしに、 Vista の Windows フォトビューワーいじってみたら
瞬時に変わるので、これは、GPU 使ってるとか、DirectX 使ってるとか、
なんか自分の知らない WPF テクニックがあるのかと思って質問しました。


347 :デフォルトの名無しさん:2009/02/24(火) 22:10:35
だから、>>340のリフレクタで解析してみなよ。
俺、Windows XP⇒Windows 7ベータだから、Windows フォトギャラリーないんだ。

348 :デフォルトの名無しさん:2009/02/24(火) 22:17:07
WPF自体はDirectXつかってるけどな

349 :デフォルトの名無しさん:2009/02/24(火) 22:46:22
単に画像処理の実装が悪いだけだろ
WPF自体の描画更新なんか画像処理に比べたら一瞬

350 :デフォルトの名無しさん:2009/02/24(火) 22:47:51
unsafeってしってるか?

351 :デフォルトの名無しさん:2009/02/24(火) 22:48:31
Bitmapの処理はメモリをロックしてアンマネージでポインタを使わないと遅いぞ〜。

352 :デフォルトの名無しさん:2009/02/24(火) 22:52:26
ここはWPFスレですよ
WiteableBitmapは十分速いよ
もともと>>351みたいな書き込みの方法しか用意されてない

353 :デフォルトの名無しさん:2009/02/24(火) 23:03:59
writeableBitmapにコピーするデータ作るのに時間かかってるんだろうが

354 :333:2009/02/24(火) 23:05:09
>>347
>>340 は俺へのレスだったのか。すまん。
reflector は知ってたけど、Windows フォトギャラリー って .net のプログラムだったんだ?
今日は出先なんで無理だが、家帰ったら試してみる。

>>349
そうなんだよ。だから、フォトギャラリーがどうやってるかわかればなぁ・・・と。

>>350 >>351 >>352
WritableBitmap で unsafe でポインタ使っても遅くて、
C++ で書き直して1秒切るところまでいったんだが、
まだ遅いので質問するにいたったわけです。

355 :333:2009/02/24(火) 23:06:15
>>353 そのとおりです。

356 :デフォルトの名無しさん:2009/02/24(火) 23:07:03
アルゴリズムが違うとか,プレビュー用に簡易に処理してるとか
いずれにしてもこれ以上はスレ違い

357 :デフォルトの名無しさん:2009/02/24(火) 23:13:09
HLSLでやってみるとか
WPFでも使えるようになったことだし

358 :デフォルトの名無しさん:2009/02/24(火) 23:21:00
>>354
もはやあれで半分反則だけどこんなのがある。反則なので速いと
いっていいのかわからんが

ttp://www.codeplex.com/wpffx

川西先生の紹介↓
ttp://blogs.msdn.com/hiroyuk/archive/2009/02/09/9407704.aspx

ちなみにちょっとビルドに注意。Codeplex にある別のやつがいる

359 :デフォルトの名無しさん:2009/02/25(水) 04:54:37
Windows Formsコントロールのオーナードロー拡張なんてもういやだ。
WPFの入れ子コントロールとXAMLが欲しい。
あと文字の強制アンチエイリアスはさせたくない。

こんな要望に対するソリューションて現状ある?

360 :347,340:2009/02/25(水) 05:17:51
>>354
え、WPFスレで、しかもWPFでどうやるのかって質問だったから、.NETプログラムなのかと勝手に
勘違いしてしまった。そうでないのなら、普通にシェーダ使ってるんじゃないの?

純粋なWPFアプリケーションだとしたら、>>358なんかで紹介されているWPFでのシェーダの使用
は最近の更新で可能になったものだから、Vista標準のプログラムとしてはないと思う。

結局、.NETプログラムじゃない、シェーダを使ってるか、画像処理を気合で頑張っている、つまり
スレ違いって所で落ち着きそうだ。

361 :デフォルトの名無しさん:2009/02/25(水) 06:14:00
>>359
XAMLの中で、例えばテキストボックスに

 <TextBox RenderOptions.EdgeMode="Aliased" x:Name"textbox1" 〜 />

と記述した場合、カーソルバーは1ドット幅の縦棒でシャキーンと表示されるけど、テキスト文字だけは
常にアンチエイリアス処理されますね。これだけ我慢すれば、最良のソリューションじゃないでしょうか。

362 :デフォルトの名無しさん:2009/02/25(水) 09:29:50
>>359
Form上でそれ実現する奴作った。それ使ったシステム5月ぐらいにリリース予定。

363 :デフォルトの名無しさん:2009/02/25(水) 09:32:20
手伝おう
テストするからうpして

364 :デフォルトの名無しさん:2009/02/25(水) 09:52:25
写真だけうp
ttp://www.rupan.net/uploader/download/1235523080.jpg

365 :デフォルトの名無しさん:2009/02/25(水) 11:10:48
>359
ElementHost使えば、winformsにコントロール単位でWPFコントロール
持ち込めるだろ。例えば、ListBoxだけとか。

んで、起動時にSystemFontsの中から適当なの選んで設定すれば、
フォントもwinforms同様になる。

366 :デフォルトの名無しさん:2009/02/25(水) 13:33:55
初心者な質問で恐縮です。
InkCanvasのペンの色を変える方法を教えてください。
xamlとC#と両方の方法をお願いします。


367 :デフォルトの名無しさん:2009/02/25(水) 13:40:27
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.inkcanvas.aspx
MSDN読めないならWPFなんか手を出さない方がいい

368 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/02/25(水) 17:59:24
> settingbutton_Click(this, EventArgs.Empty);
> と書けばいいのですが、
の意味が心底分からんが

適当にCommandsクラスとか作ってコマンドごとにRoutedUICommandのstatic readonlyフィールドを用意
それをKeyBinding.Commandに設定
あとはCommandBindingでコマンドが呼び出すメソッドを設定

370 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/02/25(水) 18:42:14
WPFの根幹ってWin32API群なの?
.NET とどう違うの?


373 :デフォルトの名無しさん:2009/02/25(水) 19:08:57
WPFも.NETで動くことは変わらない
WPFはSystem.Windows.Formsに代わる新しいGUIフレームワーク
最大の特徴は,Win32ネイティブのコントロールを使用せずにウインドウの中身を
一枚の絵としてすべてのコントロールをDirect3Dで自前で描画してること
ゲームの画面にたくさんのキャラクターを描画するのと同じ仕組み

374 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/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:2009/02/25(水) 20:21:42
>>375は俺自身参考にした事がある
http://blogs.wankuma.com/kazuki/archive/2008/03/16/127942.aspx
の記事を読み直してまとめたもの。詳しくはリンク先の記事を、やる気があれば
連載になっているから最初から、読んで行って。

377 :デフォルトの名無しさん:2009/02/25(水) 21:00:22
実験してみたけど、
Command="{x:Static foo:Window1.FooCommand}"

Command="foo:Window1.FooCommand"
とどちらでも問題ないみたい。だから必ずしもx:Staticのマークアップ拡張を使う必要はない。

378 :デフォルトの名無しさん:2009/02/25(水) 21:44:38
>>373
ありがとうございます
DirectX系で壁画するということはGPUと相性がよさそうですねVista Aeroなんかとも


379 :デフォルトの名無しさん:2009/02/26(木) 08:10:20
原始人現る

380 :デフォルトの名無しさん:2009/02/26(木) 08:20:15
壁画って何だよ?

381 :デフォルトの名無しさん:2009/02/26(木) 09:15:54
>>373
WPFで作ったアプリのUIを自動テストするのは、どんな感じ?
大昔つくったアプリは、コントロールにメッセージ送りつけてやったけど。

382 :デフォルトの名無しさん:2009/02/26(木) 10:00:52
UI Automationという機能を使うらしい

383 :デフォルトの名無しさん:2009/02/26(木) 14:11:27
だれか優しくスマートに懇切丁寧におしえろ。
ListBox.Items.Add("うんこ")見たいな物を3回ループしてやると選択がくるっとんねんけどな、コンテンツだと正常なんだわ。
ListBoxて文字でアイテム管理しとん?
解決方法どないやねん???
>>384

384 :デフォルトの名無しさん:2009/02/26(木) 14:19:06
質問が把握できないので返答もできないわ。力になれなくてごめん。

385 :デフォルトの名無しさん:2009/02/26(木) 14:21:26
そんな答えほしなかったわぁー。
おっちゃんも暇ちゃうねん、出来るだけはよう答えてくれへんか?
色々問題もあってやな、今火達磨状態やねんで?

誰かに伝えたいこの想い

386 :デフォルトの名無しさん:2009/02/26(木) 16:53:09
>>381-382
皆さん、UnitTestのテストレポートってどうしてる?
基本的に、初期値、幾つかの中間値、そして境界値とその内外だけを確認?

387 :デフォルトの名無しさん:2009/02/26(木) 23:46:12
UnitTest?なんですかそれは
ゆとりにもわかるように説明してください

388 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/02/28(土) 01:41:22
Windows.FormsのBitmapでロックされないように
MemoryStreamに読み込んでそこからBitmapを読み込むことはよくやる。
同じようにMemoryStreamに読み込ませてBitmapDecoderで読み込めばいいんじゃないかな?

390 :デフォルトの名無しさん:2009/02/28(土) 02:07:24
>>388
BitmapImage bmp = new BitmapImage();

bmp.BeginInit();
bmp.UriSource = new Uri(imgFile);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.EndInit();

391 :デフォルトの名無しさん:2009/02/28(土) 02:49:29
みなさま。
早速ありがとうございます。
>>390
これで試してみました。
しかし、ウィンドウは開くものの、ファイルはなにも表示されなくなってしまいました。


392 :デフォルトの名無しさん:2009/02/28(土) 12:30:28
>>391
コントロールに読み込んだイメージセットしてないだろ

393 :デフォルトの名無しさん:2009/02/28(土) 12:38:49
UI要素の下や上だけに境界線を引くにはどうしたらいい?

394 :デフォルトの名無しさん:2009/02/28(土) 12:46:38
>>392
bmp.UriSource = new Uri(imgFile);
だけではセットしたことにならないの?
セットの方法を教えてください。


395 :393:2009/02/28(土) 12:57:36
自己解決
<Border BorderBrush="Black" BorderThickness="0 1 0 0">

396 :デフォルトの名無しさん:2009/02/28(土) 13:27:07
>>394
処理の内容ちゃんと理解しなきゃ

397 :デフォルトの名無しさん:2009/02/28(土) 13:33:32
>>394

>>388に書いてある
img.Source = new BitmapImage(new Uri(imgFile));
ってコードの、右辺の処理new BitmapImage(new Uri(imgFile))をファイルがロックされないように
書き直したのが>>390。出来上がったBitmapImageのインスタンスをimg.Sourceから参照させる
処理は書かなきゃ。

398 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/03/01(日) 20:14:16
>>399
>bmp.CacheOption = BitmapCacheOption.OnLoad; //??

分からなければMSDNで調べろよ…
http://msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.bitmapimage.cacheoption.aspx
http://msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.bitmapcacheoption.aspx

402 :デフォルトの名無しさん:2009/03/01(日) 20:18:44
> bmp.CacheOption = BitmapCacheOption.OnLoad; //??
なんだよそれ?いい加減にしろよ。

http://msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.cachedbitmap(VS.80).aspx
これ全部読むまで再質問禁止。

403 :デフォルトの名無しさん:2009/03/01(日) 20:27:25
>>400
ありがとうございます。
なんだかわからないのですが、一度終了して再起動したら動くようになりました。
いろいろありがとうございました。


404 :デフォルトの名無しさん:2009/03/02(月) 16:49:22
WPFの「Frame」カスタムコントロール作成でこけましたorz
Blendで作ってもらったFrameのXAMLをVSで読み込ませると
「'Frame' ControlTemplate TargetType は、テンプレートの型 'PlaceHolderControl' と一致しません。」(エラー場所は無駄な事言ってるので省きました)
と、例外が発生します。
コントロールを作ってもらっても一緒です。
しかし、これらは実際バグっているわけでもなく、ビルドもコンパイルも正常に動きます。
どうもVSのデザイナだけがこけています。

何かいい回避方法(Frameに似たコントロール)などありませんか?
よろしくお願いします。

環境:Windows7 VS2008

405 :デフォルトの名無しさん:2009/03/02(月) 19:17:27
言ってることがよくわからない
FrameのControlTemplateを作ってるの?それ何の意味があるの?
そんなことしないでユーザコントロールにFrameを張り付ければ一緒だと思うんだが

406 :デフォルトの名無しさん:2009/03/02(月) 19:29:38
FrameってHTML表示したいときとか
「戻る」「進む」ができるようにしたいときに使うんだよわかってる?
コンテンツを飾り付けしたいだけならDecoratorの派生クラス(Borderなど)使う
もちろんFrameを飾り付けするのにもDecoratorが使えるし,普通はテンプレート使わずにそうする

407 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/03/02(月) 19:42:32
ちょっと状況が良く分からないんだけど、WPFにFrameコントロールがあるので
衝突しているんじゃないかな?
 
xmlns宣言で名前空間への参照を追加して、名前空間込みで「Frame」コントロールや
そのx:Typeを指定したらどうだろう?

409 :デフォルトの名無しさん:2009/03/02(月) 19:48:34
その自作FrameのTemplatePart属性は確認した?

410 :デフォルトの名無しさん:2009/03/02(月) 21:00:28
>>408
ちょっと判らなかったです・・・
MSDNをみてやってみたのですがうまくいきません。
アセンブリは「PresentationFramework.dll 内」となっているので問題ないですが、
XMLNSは参照して追加しても「タグ 'Frame' は、XML 名前空間 'http://schemas.microsoft.com/winfx/xaml/presentation' にありません。」
となってしまいます。

色々やってみた結果、
<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 :デフォルトの名無しさん:2009/03/02(月) 21:08:56
コントロールテンプレートは完全に自由に書いていいわけじゃなくて,
最低限テンプレートに含めないといけないコントロールが決められてるのが普通
それを示す属性がTemplatePart
逆に,そういう条件が必要ないならあまりテンプレートを使う意味がない

412 :デフォルトの名無しさん:2009/03/02(月) 21:19:23
>>410
ツール-オプション-テキストエディタ-xaml-その他-既定のビュー

「常にフルxamlビューでドキュメントを開く」
のチェックを外せば直るみたい。

でも、xaml直書きする場合、このチェックは入れておきたいよねえ。
なんか普通にバグっぽいぞ。

413 :デフォルトの名無しさん:2009/03/02(月) 21:38:27
>>411
>コントロールテンプレートは完全に自由に書いていいわけじゃない
てっきり何をしてもいい>>412
物だだと思っていました!
TemplatePartは詳しく調べる必要があるようです。

>>412
うまくいきませんでした・・・
どうしても「'Frame' ControlTemplate TargetType は、テンプレートの型 'PlaceHolderControl' と一致しません」がデザイナのみにエラーが出てきます。
コンパイル、ビルドも出来るので間違ってはいないと思いますが、VSのデザイナが使えないというのはキツイです・・・

414 :デフォルトの名無しさん:2009/03/04(水) 04:37:13
WPFのデザイナは相変わらず貧弱だなぁ

そこが萌えるんだけどw

415 :デフォルトの名無しさん:2009/03/05(木) 16:28:41
WPF始めてみたいけどネット上には驚くほど資料ないねこれ・・・

416 :デフォルトの名無しさん:2009/03/05(木) 16:40:00
InteliSenseこそ最上のヘルプ

417 :デフォルトの名無しさん:2009/03/05(木) 17:02:12
>>416
試すパターンが膨大で困るw

418 :デフォルトの名無しさん:2009/03/05(木) 17:12:14
書店にも本が並んでない
すべてxamlのせいで敷居が高くなってるせいだと思う
WPFだけなら新しいコントロールライブラリってことで十分普及したと思うよ
Microsoftはxaml使うのをWPFが使われるようになってからに遅らせるべきだった

419 :デフォルトの名無しさん:2009/03/05(木) 17:25:04
ネットだと
http://ufcpp.net/study/dotnet/index.html
とか
http://uchukamen.com/WPF/Default.htm
くらいを見て、後はいろんな人のブログを見てバインディング周りの
定石をしれば、本当の話IntelliSenseで十分ヘルプになるようになる
と思う。

420 :419:2009/03/05(木) 17:26:32
ごめん、419の前にこれを投稿しようとしたんだ。

俺はWPF+XAMLはWindows Formsや昔のWin32APIでウィンドウ
作ってた時代よりも初心者向けだと思うよ。

本がないのも外国語の物は専門性の高い物から入門書まで多いし、
日本の出版事情が大きいんじゃないかな。



421 :デフォルトの名無しさん:2009/03/05(木) 18:07:43
ちょっと質問!
TextBlockで普通の改行入りテキストを
<TextBlock TextWrapping="Wrap">
あれ?<LineBreak />
声が<LineBreak />
遅れて<LineBreak />
聞こえるよ<LineBreak />
</TextBlock>
こうやって作った後Blendとかに再読み込みさせると「Inline」がいっぱい引っ付いてくるんだけど、この書き方は推奨されていないから?
それともBlendの屁理屈?

422 :デフォルトの名無しさん:2009/03/05(木) 20:01:29
初心者にとっては(とっつきやすさでは)
Windows Forms > WPF/XAML

Windows Formsは
・XMLを編集しなくていい
・APIのデザインも直感的(使いたい機能が「そこ」にある)

423 :デフォルトの名無しさん:2009/03/05(木) 21:31:12
>>421
意味が同じだから

424 :デフォルトの名無しさん:2009/03/05(木) 22:27:40
>>422
WPFはWindowsFormsと同じようにAPIベースで作成できるよ。
名前が違うだけでやってることはほぼ同じ。

初心者ってのはおまえ自身のことだろ。

425 :デフォルトの名無しさん:2009/03/05(木) 22:31:49
>>423
答えてくれてありがとう!
何かTextBlockも機能的にはとてもいいけど、Labelの方が簡単でとっつき易いなー

426 :デフォルトの名無しさん:2009/03/05(木) 22:43:40
一般のテキスト表示にはTextBlockを使う
Labelは別のコントロールに文字通りラベルとアクセスキーを付けるためだけに使う
ということでおk?

427 :デフォルトの名無しさん:2009/03/05(木) 22:45:20
Labelは一行
TextBlockは数行
くらいにしか深く考えたことないや。

428 :デフォルトの名無しさん:2009/03/05(木) 23:16:17
GDIが早くていいよ

429 :デフォルトの名無しさん:2009/03/05(木) 23:37:44
>>419

bindingが覚えづらい。xml的お作法としてはああなるのが正当なのかも
しれないけれど、直感に反する書き方だし、わかりづらいし、何とかしてほしい
リソースがらみもそう。

とにかくxamlで中カッコ {}が出てくる場面はうんざりする。なんなのこの変態言語
って感じで。

430 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/03/06(金) 00:36:17
あと、マークアップ拡張使う方がxmlの入れ子が無闇に深くならなくて済むので
必ずしも悪い事でもない。そこでマークアップ拡張使う場合にお勧めなのが
次のアンチョコ:
http://go.nbdtech.com?94E138EA



432 :デフォルトの名無しさん:2009/03/06(金) 01:39:57
まともなデザイナーがVSについていればもう少し使われやすいと思うんだがな・・・・
Formsはペタこれするのはわかりやすいけれど、それ以上ができない。
WPFはそういうところがエレガントにできるけど、バインディングとか正直わかりにくい。

433 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/03/06(金) 17:29:22
すいません、バインディングに関する質問です
複数のPage間でテキストデータをバインディングするとき、どうすればいいかわかりません。
名前空間などに定義する方法などが考えられるのですが、一番簡単で効率のいい方法はないですか?

435 :デフォルトの名無しさん:2009/03/06(金) 17:57:21
このスレをマイクロソフトに教えればわかりやすい資料つくってくれるかもしれないよ

436 :>>434:2009/03/07(土) 15:56:56
マイクロソフトのサンプルの中にWindow間でデータのバインディングをやっているのを見たのですが、
やっぱり名前空間を全てのWindowのザムルに定義している方法を取っているので、これが妥当だと思う

437 :デフォルトの名無しさん:2009/03/08(日) 12:54:50
ProgressBarでバーをスムーズに(FormアプリのProgressBarStyle.Continuousみたいに)表示させるには
Templateを弄るしかないんですか?

438 :デフォルトの名無しさん:2009/03/09(月) 18:06:04
DataContextにオブジェクトが設定してあるとして
LoadedやUnloadedイベントにそのオブジェクトのメソッドを登録したいのですが
コードを書かずにXAML上だけでできますか?

439 :デフォルトの名無しさん:2009/03/10(火) 04:39:43
ここってsilverlightの話もしていいの?

440 :デフォルトの名無しさん:2009/03/10(火) 08:15:43
>>439
専用スレあるよ。
Microsoft Silverlight 2.0 その3
http://pc11.2ch.net/test/read.cgi/tech/1227324813/l50

441 :デフォルトの名無しさん:2009/03/10(火) 21:11:14
↑別スレですか
ありがとうございます

442 :デフォルトの名無しさん:2009/03/11(水) 10:41:36
誰かMSに報告
Blendにて「Hyperlink」編集不可
直タグ打ち可

443 :デフォルトの名無しさん:2009/03/11(水) 11:07:30
お前がやれ

444 :デフォルトの名無しさん:2009/03/11(水) 11:24:06
アカウントとるのめんどくせw

エヘッ♪

445 :デフォルトの名無しさん:2009/03/11(水) 22:36:52
xamlで記述したプログラムととC#のプログラムって
記述方法が違うだけで使ってるのは同じ.NET frameworkだから
性能とかはかわらないんだよね?

446 :デフォルトの名無しさん:2009/03/11(水) 23:07:15
かわらん

447 :デフォルトの名無しさん:2009/03/11(水) 23:08:12
ロードはたぶんXAMLの方が遅い
ロード後の動作は全く一緒

448 :デフォルトの名無しさん:2009/03/11(水) 23:46:48
ありがと
htmlの描き方が苦手なおれはxamlじゃなくてまずC#でWPF勉強するわ

449 :デフォルトの名無しさん:2009/03/12(木) 13:07:52
BitmapImageで読み込める画像形式を追加することはできませんか?
できればアプリケーション内でローカルに追加/削除できて
他のアプリケーションには影響しないようにしたいのですが。

450 :デフォルトの名無しさん:2009/03/12(木) 16:10:21
UriSourceプロパティを使うのはたぶん無理
自前のコードで読み込んでStreamSourceに設定するしかないと思う
でもそうするといちいち他の画像形式に変換しないといけないし
BitmapImageを使う意味もないので
BitmapSource.Createを使ってピクセルデータから直接作った方がいい

451 :デフォルトの名無しさん:2009/03/12(木) 17:17:54
アニメーション設定とかしてる場合、コードとザムルアニメーションはやっぱりコードの方が優先?
設定できたりする?

452 :デフォルトの名無しさん:2009/03/12(木) 17:30:33
後で設定した方が有効になるだけだが

453 :デフォルトの名無しさん:2009/03/12(木) 18:30:36
>>433
> 3.補助定義表=それらのバインディング等

これをデザイナのプロパティウィンドウあたりで簡単に設定できれば
xamlの中に取り込まれていても問題ないと思うんだが。
デザイナがひどすぎると思う。

454 :デフォルトの名無しさん:2009/03/12(木) 18:42:18
結局デザイナだろ
WinFormsはもっと汚い形でやってるんだから

455 :デフォルトの名無しさん:2009/03/13(金) 16:04:08
XMLバインディングをやってみたんだけど、「存在するXMLと同期」じゃなくて、
「存在しているXMLをリソースとして利用」のほうが正しい?

どうも作ってみても、EXEの中にリソースとして取り込まれて、XMLファイルの切り替えとかが出来ないw
RSSの仕組みでネットワークにあるものを指定してやると、切り替えとかをネットワーク越しに出来るけどローカルでは無理な感じ。

456 :デフォルトの名無しさん:2009/03/13(金) 16:32:24
ごめん嘘、忘れて

457 :デフォルトの名無しさん:2009/03/14(土) 02:47:23
ポカー

458 :デフォルトの名無しさん:2009/03/14(土) 07:13:23
RichTextBox に Wordwrap プロパティがないんだけども、
改行しないで表示させたい場合どうしたら良いの?

459 :デフォルトの名無しさん:2009/03/14(土) 14:17:38
TextBoxでいいんじゃね?
RichTextBoxの中にあるFlowDocumentだっけか、
あれにパネルとか突っ込んで見たんだけど、どうもスクロールバー自体がテキスト扱いになって操作できないし。

460 :デフォルトの名無しさん:2009/03/14(土) 15:06:30
>>458
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.richtextbox.aspx
> RichTextBox ではテキストが常に折り返されます。
> テキストの折り返しが不要な場合は、FlowDocument の PageWidth を RichTextBox の幅より大きく設定します。
> ただし、この場合も、ページの幅に達するとテキストが折り返されます。
なので、
<RichTextBox><FlowDocument PageWidth="300"/></RichTextBox>
<RichTextBox><FlowDocument MinPageWidth="680" MaxPageWidth="1024"/></RichTextBox>
みたいに、適当に大きな幅を入れておくとか。
ただ、横スクロールバーを表示すると、最初からスクロールできる状態になってしまうのが難点だけど。
後は、イベントで動的に幅を測定して FlowDocument.PageWidth に反映させるとか。

461 :458:2009/03/14(土) 23:04:06
>>459
色つけたかったんで、TextBoxじゃだめなのよ

>>460
ありがとう。助かったぜ。

462 :デフォルトの名無しさん:2009/03/15(日) 00:28:01
WCFおもしろいな。しかしスレはない

463 :デフォルトの名無しさん:2009/03/15(日) 01:17:46
>>462
Webサービス プログラミング総合スレッド
ttp://pc11.2ch.net/test/read.cgi/tech/1031149340/

464 :デフォルトの名無しさん:2009/03/15(日) 01:38:18
>>462
特に旧来のWindowsForms、これからのスタンダードなWPF、XBAP、Silverlight、そして携帯電話や汎用
ブラウザ向けのASP.NETなんかで相互に共用できるアプリケーションシステムの構築となると、
やっぱりWCFは欠かせないよね。

俺の場合、データ・レイヤはSQL Server、アプリケーション・レイヤは機能・役割ごとに複数個のWCFで構築。
プレゼンテーション・レイヤは、WinForm、WPF、XBAP、Silverlight、Javaでマルチクライアント環境を実現。
今はこの基本3層構成をWebサービスのマイブームと位置付けて色々と遊んでいる。

465 :デフォルトの名無しさん:2009/03/15(日) 13:16:46
重要度的には Silverlight>WPF>XBAP な希ガス。

466 :デフォルトの名無しさん:2009/03/15(日) 13:34:46
>>465
XBAPはSilverlightへの発展的解消で完全に進化が止まっちゃったからね。
Silverlightは資料もチュートリアルも豊富。WPFとの2本立てで決まりだね。

そういえば、MIX'09でSilverlight 3の発表ですな。
ブラウザナビゲーションとの連携が目玉らしいけど、それよりTextBox上での
右クリック時にコピペ系のコンテキストメニューを出すようにして欲しいな。

467 :デフォルトの名無しさん:2009/03/15(日) 13:46:59
もうSliverlight3の発表ですか、これは楽しみ。
ついでにBlendも改善バージョンを発表してもらいたいですね。

468 :デフォルトの名無しさん:2009/03/16(月) 02:29:08
Silverlightで書かれたサイトって一発でわかる?

469 :デフォルトの名無しさん:2009/03/17(火) 00:29:03
インストールを強制されるからね

470 :デフォルトの名無しさん:2009/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 :デフォルトの名無しさん:2009/03/19(木) 03:50:47
でもC#のプログラムって商用にしにくいよね
割と簡単にソースを推論できるから

472 :デフォルトの名無しさん:2009/03/19(木) 04:25:53
>>471
情報システム系の業務アプリには向いているよ。
オンライン販売やパッケージ販売のソフトウェア制作には向かないかも。

商用≠開発したソフトウェアの製品マスターのコピーを販売する
商用=商用の設備・ツールとしてソフトウェアを稼動させる

473 :デフォルトの名無しさん:2009/03/19(木) 07:17:14
難読化してありゃ十分じゃね?
客先で難読化されてた奴見たけど中身を見る手間相当あがると思うけど。

動作のわかる所からクラス機能を推論して意味通る名前を当てはめるにしても全体の把握は大変そう。
一部のロジックがわかれば良くてそこだけピンポイントで調べるのには向かなそうだが。

474 :デフォルトの名無しさん:2009/03/19(木) 07:21:40
VisualStudioに組み込んでくれないかな
難読化

475 :デフォルトの名無しさん:2009/03/19(木) 11:06:32
商用というかメーカー製PCのバンドルソフトでも.NET利用がちらほら見かけるようになったが、
大抵ネイティブモジュールとのハイブリットだしな。

476 :デフォルトの名無しさん:2009/03/19(木) 14:52:32
ネイティブと混ぜたらネイティブ部分はちゃんとブラックボックス化するのか?
あと自作したlibやdllを混ぜたらリコンパイルきかないだろう
さすがに機械コードを読んで作るやつはいるわけないし

477 :デフォルトの名無しさん:2009/03/19(木) 15:34:17
GUIだけ.NETって感じ?

478 :デフォルトの名無しさん:2009/03/19(木) 15:56:36
C++で書いてあるコードでも、UI部分のように、そのほとんどがAPIコールのものは解読は容易。
だいいち、そんなに解読されて困るコアのアルゴリズムがあるんだったら、それはサービス化
してSaaSで提供するとか考えるべき。

479 :デフォルトの名無しさん:2009/03/19(木) 21:20:25
tabControlのタブに画像を表示させるのはどうすれば良いのですか。
このアプリのようにしたいのですが。
http://tmpgenc.pegasys-inc.com/ja/product/tme3_feature.html

480 :デフォルトの名無しさん:2009/03/19(木) 21:29:45
ItemTemplateプロパティで

481 :デフォルトの名無しさん:2009/03/19(木) 21:40:39
>>479
TabItem.Header に Image を指定する。

<TabControl>
  <TabItem>
    <TabItem.Header>
      <Image Source="example.jpg" Stretch="None"/>
    </TabItem.Header>
    ....
  </TabItem>
  ....
</TabControl>

482 :デフォルトの名無しさん:2009/03/20(金) 07:25:57
481>>
ありがとうございます。
「ファイル example.jpg はプロジェクトの一部ではないか、'Build Action' プロパティが 'Resource' に設定されていません。」
となります。Resource設定はどのように行うのでしょうか。




483 :デフォルトの名無しさん:2009/03/20(金) 11:30:12
>>482
Visual Studio を使っているなら、
プロジェクトを右クリック->追加->既存の項目...->イメージ ファイル->example.jpg。
ビルドアションの変更する場合は、
プロジェクトに追加したファイルを右クリック->プロパティ->ビルド アクション。

詳しくは、ここを参照。
Windows Presentation Foundation アプリケーションのリソース、コンテンツ、およびデータ ファイル
http://msdn.microsoft.com/ja-jp/library/aa970494.aspx

484 :デフォルトの名無しさん:2009/03/20(金) 20:48:14
WPFの窓の中にopenglで描画したり,WPFの窓をC++で使うことは出来ますか?

485 :デフォルトの名無しさん:2009/03/20(金) 21:12:32
>>484
とりあえずここを読んでみては?

WPF 移行と相互運用性 - MSDN
http://msdn.microsoft.com/ja-jp/library/ms753178.aspx

486 :デフォルトの名無しさん:2009/03/20(金) 21:18:12
WPFは4.0でよくなるのかなー
Form,Silverlight,WPFどれがどうつかわれてくのかいまいちさきがみえん。
Silverlight3.0とかかなりよさげで環境を問わないWeb,デスクトップ含めたUIフレームワークとしてかなり有望そうだが。

487 :デフォルトの名無しさん:2009/03/20(金) 21:46:10
>>485 読んでみます

488 :デフォルトの名無しさん:2009/03/20(金) 23:24:43
機能もだが、XPで4.0がサポートされるのかどうか不安だ。
グラフィック関係の新規APIはほとんどVista以降のみ対応だからなあ。

489 :デフォルトの名無しさん:2009/03/21(土) 03:38:28
SGMLは<tag> </tag>ではなく[tag][/tag]にすべきだった
<>入力するときにShiftがめんどくさいです><

490 :デフォルトの名無しさん:2009/03/21(土) 08:04:07
>>483
ありがとうございます。できました。

491 :デフォルトの名無しさん:2009/03/21(土) 09:30:52
WPFって時期尚早と思わない?
初心者が取っ付くには敷居が高すぎる。
ウインドウズフォームとちがって単純に貼り付けて
プロパティを操作するだけではだめだ。

インテリセンスも効かないXAMLファイルを操作しなくては
ならないし。

492 :デフォルトの名無しさん:2009/03/21(土) 12:28:12
時期尚早だよ。だからこそ楽しい。

493 :デフォルトの名無しさん:2009/03/21(土) 14:00:00
そういうこと。F#もいい。

494 :デフォルトの名無しさん:2009/03/21(土) 14:23:11
少なくとも生産性は低いな

495 :デフォルトの名無しさん:2009/03/21(土) 14:40:02
>>491
俺はC#だけで書いてる

496 :デフォルトの名無しさん:2009/03/21(土) 15:06:20
確かWPFってデュアルコア6GHz時代を想定して作ったんじゃなかったっけ?

497 :デフォルトの名無しさん:2009/03/21(土) 15:33:44
どう考えても、XAML + C# の方が生産性が高くないか?

498 :デフォルトの名無しさん:2009/03/21(土) 15:37:54
WinFormよりXAML+WPFの法がよほど効率的だな。

499 :デフォルトの名無しさん:2009/03/21(土) 15:59:55
DataGridViewさえ充実していれば…

500 :デフォルトの名無しさん:2009/03/21(土) 16:01:15
次期バージョンを待て

501 :デフォルトの名無しさん:2009/03/21(土) 17:56:52
>>497
>>498
何を持ってそう言える???

502 :デフォルトの名無しさん:2009/03/21(土) 21:17:12
生産性を高くするためのフレームワークなんだから、低かったら使う意味ないじゃん。

503 :デフォルトの名無しさん:2009/03/21(土) 23:55:26
XAMLでUIの階層分けを意識して記述できるし、
アニメーションさせなきゃならない部分があっても気軽に書ける。

504 :デフォルトの名無しさん:2009/03/22(日) 00:06:30
WinFormsはデザイナでコントロールの親子関係を変更するのが面倒だったな

その点、WPFはXAMLを少し書き換えるだけなので楽だ

505 :デフォルトの名無しさん:2009/03/22(日) 00:09:13
ポトペタ以上のことやろうとしたらWinFormsは簡単に破綻するでしょ。


506 :デフォルトの名無しさん:2009/03/22(日) 00:59:04
XAMLはコントロールの親子関係もプロパティもすべて一覧で把握できる。

507 :デフォルトの名無しさん:2009/03/22(日) 01:02:31
UIの柔軟性とソースでの視認性の双方のバランスがいいよなXAMLは
これに関してはWinFormとは段違いでいいと思う

508 :デフォルトの名無しさん:2009/03/22(日) 01:12:50
>>501涙目

509 :デフォルトの名無しさん:2009/03/22(日) 01:26:51
C#とxamlとで相互変換できるならVSでボタン一つで切り替えるようになるといい
それぞれのいい所取りできれば最高

510 :デフォルトの名無しさん:2009/03/22(日) 01:45:40
C#の利点(リファクタリングとか)がXAMLでも完璧に使えたらとは思うが、
そのアプローチには無理があるだろう

XAML→C#は可能だろうけど、
C#→XAMLはC#のコードがXAMLに埋め込まれる事になりそう

511 :デフォルトの名無しさん:2009/03/22(日) 02:10:37
>C#→XAMLはC#のコードがXAMLに埋め込まれる事になりそう
これに関してはマイクロソフト様より「技術的には可能だが非推奨」という
実務ガイドラインの見解を戴いております。

512 :デフォルトの名無しさん:2009/03/22(日) 11:54:50
コードが埋め込まれたとしても、そんなところには見向きもしないでxamlで見やすいところだけ編集するんだから無問題

513 :デフォルトの名無しさん:2009/03/23(月) 15:22:18
WPF Toolkit が更新されてるね。
DataGrid, DatePicker, Calendar のバグが修正されたみたい。

WPF Toolkit - March 2009 Release
http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047

ttp://blogs.wankuma.com/kazuki/archive/2009/01/31/167199.aspx
↑のスクロールで列の表示が崩れるバグもしっかり修正されてたよ。

514 :デフォルトの名無しさん:2009/03/24(火) 20:22:05
XAML編集でちゃんとインテリセンスが効けばいいんだけどねえ。
この辺もVS2010で改善されるのかなあ……

515 :デフォルトの名無しさん:2009/03/24(火) 20:28:48
>>514
{Binding }にもインテリセンス効くようになるらしいよ
エディタも十分高機能化するそうだけど

516 :デフォルトの名無しさん:2009/03/25(水) 03:46:02
VS2008でその水準に達していなかったのが最大の失策

517 :デフォルトの名無しさん:2009/03/25(水) 11:40:19
>>515
>{Binding }にもインテリセンス効くようになるらしいよ
これはかなり嬉しい。
そういや、WPF Toolkitも標準で入るとか聞いたが…。

518 :デフォルトの名無しさん:2009/03/25(水) 19:05:20
Windowsライクな外観を作りにくい

149 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)