WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/01/09(金) 22:14:36.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/
0002デフォルトの名無しさん
2009/01/09(金) 22:49:520003デフォルトの名無しさん
2009/01/11(日) 00:19:22「Microsoft .NET Framework 3.5.1」というのがデフォルトで入ってた。3.5 SP1の事か?
でも、そのツリーの下にある、
Windows Communication Foundation HTTP Activation
Windows Communication Foundation Non-HTTP Activation
は入ってなかった。WCFが使えないって事?
0004デフォルトの名無しさん
2009/01/11(日) 00:55:21つ ttp://msdn.microsoft.com/ja-jp/library/ms788757(VS.80).aspx
0005デフォルトの名無しさん
2009/01/14(水) 14:12:250006デフォルトの名無しさん
2009/01/14(水) 15:16:13つ ttp://tmpgenc.pegasys-inc.com/ja/product/tme3.html
0007デフォルトの名無しさん
2009/01/14(水) 18:11:150008デフォルトの名無しさん
2009/01/14(水) 18:32:450009デフォルトの名無しさん
2009/01/15(木) 01:39:24Vistaと同様、相変わらずWin32ベースのGUIがそのまま残っていることに驚き。
しかしXP環境の .NET3.5で動かすと異様にモッサリなWPFも、Windows 7の環境だとサクサクだね。
それにVS2008もx64だと速い速い!
.NETのパフォーマンス、そしてIIS 5.1/6とIIS 7との機能差も無視できなくなったし、企業も今度こそは
Window Server 2008と、Windows 7 に大移動かね。
0010デフォルトの名無しさん
2009/01/15(木) 10:02:050011デフォルトの名無しさん
2009/01/15(木) 23:02:580012デフォルトの名無しさん
2009/01/15(木) 23:44:430013デフォルトの名無しさん
2009/01/16(金) 13:38:12LoiloScopeもWPFじゃなかったっけか
0014デフォルトの名無しさん
2009/01/19(月) 22:36:57プロパティの変更通知をUIと違うスレッドでしても平気なの?
実験では問題なく動いてるように見えるんだけど、フレームワーク的に想定してるの?
0015デフォルトの名無しさん
2009/01/22(木) 15:51:42でも干渉とかを心配するなら場所を1つに決めて書き直す事を勧める
0016デフォルトの名無しさん
2009/01/27(火) 23:40:300017デフォルトの名無しさん
2009/01/27(火) 23:49:59[EditorBrowsable(EditorBrowsableState.Never)]属性が付けられてる
DispatcherObjectはWPFの多くのクラスが継承してて,メンバ名も抽象的で
コントロールのメンバと混ざるとややこしいから隠してるんじゃね
0018デフォルトの名無しさん
2009/01/27(火) 23:51:54ListBoxみたいにItemsSourceを設定する方法はない?
0019デフォルトの名無しさん
2009/01/28(水) 00:15:070020デフォルトの名無しさん
2009/01/28(水) 00:19:24ああ、そういうことなんか
0021デフォルトの名無しさん
2009/01/28(水) 19:40:00選択できないようにできる?
0022デフォルトの名無しさん
2009/01/28(水) 19:50:12HTMLならalignとかで出来るけども、回り込み的な表現を行いたい場合の
方法がわからない。
わかる方、教えてほしいです。
0023デフォルトの名無しさん
2009/01/28(水) 20:33:07WPFって世界で使ってる人5人ぐらいですか?
0024デフォルトの名無しさん
2009/01/28(水) 20:48:370025デフォルトの名無しさん
2009/01/28(水) 20:53:030026デフォルトの名無しさん
2009/01/28(水) 20:55:472010人くらいじゃね?
0027デフォルトの名無しさん
2009/01/28(水) 21:22:340028デフォルトの名無しさん
2009/01/28(水) 21:25:11〜 Microsoft VS 2010 〜
0029デフォルトの名無しさん
2009/01/28(水) 21:29:140030デフォルトの名無しさん
2009/01/28(水) 21:32:24瞬間の動作は気分的な問題だから、重くならないように荒くさせてあげたいんだけど。
(だったら瞬間どうさ止めろとかなしでw
0031デフォルトの名無しさん
2009/01/28(水) 21:37:35今、こういうふうにラベルで文字を表示してるんだが、
<Label Content="{Binding Foo(Name)}" />
こんな感じで処理してから表示したい。
どうすればいい?
Fooを↓みたいに定義すればコンパイル通るんだが文字が表示されなくなった。
public void Foo(string str)
{
return "foo" + str;
}
003231
2009/01/28(水) 21:38:45public string Foo(string str)
{
return "foo" + str;
}
こうだな。
0033デフォルトの名無しさん
2009/01/28(水) 21:45:080035デフォルトの名無しさん
2009/01/28(水) 22:03:38あ、例外が出たから空に置き換えときますね
0036デフォルトの名無しさん
2009/01/28(水) 22:15:230037デフォルトの名無しさん
2009/01/29(木) 11:48:05・項目は水平に並べられる
・幅に収まらない場合は右端で折り返され、下に伸びていく
・画面に収まらない場合は垂直スクロールバーが表示される
という風にしたいのですが、下のようにWrapPanelを使っても折り返されず
右にどんどん伸びていって水平スクロールバーが出てしまいます。
どうすればいいのでしょうか?
<ListView Name="listView1">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
003831
2009/01/29(木) 19:24:22変換にはどうしてもコントロールにある情報が必要なんだが。
やりたいこととしては
名前とGUIDが入ったデータの配列があって、
名前をリストで表示したいんだが、
名前が同じでGUIDが違うデータがあったら後のデータを
「〜〜〜(2)」みたいなかんじで表示したい。
てかWPFって難しいな。
0039デフォルトの名無しさん
2009/01/29(木) 21:46:43WrapPanelのWidthが指定されてないから無制限に横に広がっちゃう
ViewBaseクラスのサンプルにWrapPanelの例があるよ
>>38
ConverterParameterでパラメータ渡すとか
つかIValueConverterにDictionaryとか持たせればどうとでもなるような気がするけど
004037
2009/01/29(木) 22:49:52ありがとうございます。
<ListView Name="listView1">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Width="{Binding ActualWidth, RelativeSource={RelativeSource AncestorType=ScrollContentPresenter, Mode=FindAncestor}}" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
とすることでできましたが、ScrollContentPresenterというものがどっから出てきたのか分からず
ちょっとすっきりしません。
ListViewとScrollContentPresenterの関係についてはどこに書いてあるのでしょうか?
0041デフォルトの名無しさん
2009/01/30(金) 03:51:26ListView ControlTemplate の例
http://msdn.microsoft.com/ja-jp/library/ms788747.aspx
あと、Snoop っていう WPF のツリー構造を表示するツールもあるから、検索してみると良い。
どのプロパティに値を設定すれば、どんな風になるとか、実行しながら色々試せる。
0042デフォルトの名無しさん
2009/01/30(金) 19:28:32Snoopでツリー構造表示はすごく参考になります。
結局そのリンクにあるControlTemplateをカスタマイズする方法にしました。なんかいろいろできそうだし。
ありがとうございました。
<ListView.Template>
<ControlTemplate>
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ListView.Template>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
0043デフォルトの名無しさん
2009/01/30(金) 22:46:41今から使ってる香具師はいる?
0044デフォルトの名無しさん
2009/01/30(金) 23:01:22グラフは
N分間の受信データをグラフに表示する
グラフにはN点で表され、それぞれの点は対応する時間(分)での最終データを表す
毎秒数回データを受信し、その都度グラフに反映する
ときどき値域が変化しその都度全体を再描画する
こういうものです
0045デフォルトの名無しさん
2009/01/30(金) 23:07:38「変わったときに」と指定するなら、タイマーで前回と差が出たら〜にすればいいと思うし、
それに全体をっていうのが引っかかるけど、やっぱ作画した上から瞬間のデータを書いてやるのが一般的。
0046デフォルトの名無しさん
2009/01/30(金) 23:53:24データの送受信タイミングを送信側が制御するならコールバック
0047デフォルトの名無しさん
2009/01/31(土) 00:00:300048デフォルトの名無しさん
2009/01/31(土) 10:58:120049デフォルトの名無しさん
2009/01/31(土) 11:44:26Microsoft株式会社 川西裕幸 高橋忍 著
ISBN978-4-7973-3916-1
0050デフォルトの名無しさん
2009/01/31(土) 13:05:52意味とかはふむふむと興味深い点も多かったけど、正直実践にはあまり
役立ちそうにない本だった。
0051デフォルトの名無しさん
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>
0052デフォルトの名無しさん
2009/01/31(土) 15:46:20俺も読んだけど、ことWPFに関して言えば、フレームワークの背景に有る
考え方を知る事の方が重要だと思った。今までとかなり違うからね。
0053デフォルトの名無しさん
2009/01/31(土) 16:35:350054デフォルトの名無しさん
2009/01/31(土) 18:33:082005年にでたプログラミングWPFのほうがいい。(ベータ版が対象だが)
0055デフォルトの名無しさん
2009/01/31(土) 19:27:16そもそも面倒くさいよな。
ちょっとしたことでもコンバータとか書かねばいかんことが多いように見えるし。
思ったのは、頻繁に使う一般的な数値データのバインドなら、たとえばいっそ、
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,くらいにしてくれるといいようにも思うのだが。
0056デフォルトの名無しさん
2009/02/01(日) 00:02:07XAMLというのはクラスのメンバの値の設定をマークアップ言語?で記述してる
って解釈でいいの?
それ以外なにか特徴ある?
どこ見てもいきなり文法の説明っぽいのばっかりでいまだに全体像がつかめない
005731
2009/02/01(日) 00:09:47<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が定義されている。
0058デフォルトの名無しさん
2009/02/01(日) 00:38:55すっごーく乱暴に言えばHTML/CSS+JavaScriptとXAML+C#/VB.NETで対応する感じ。
0059デフォルトの名無しさん
2009/02/01(日) 00:55:51その解釈で合ってるよ。タグ名がクラス名に該当する。
属性がプロパティ
WPF以外のクラスも生成できる
0060デフォルトの名無しさん
2009/02/01(日) 00:59:420061デフォルトの名無しさん
2009/02/01(日) 01:16:29internalじゃなくてpublicなのは何か理由あるの?
0062デフォルトの名無しさん
2009/02/01(日) 01:35:06ItemTemplateの方で記述すべきことじゃね?
>>57
そりゃConverterに先祖は存在しないだろう
0063デフォルトの名無しさん
2009/02/01(日) 02:17:07対応するプロパティってどれでしょうか?
ClipとかVisualClipかなと思ったのだけどうまくいかなくて。
006457
2009/02/01(日) 06:49:58どうすればコントロールの依存プロパティにアクセスできる?
RelativeSourceについていまいち理解できてないんだが
いいサイトないかい?
0065デフォルトの名無しさん
2009/02/01(日) 11:22:56やりたいことの大枠は分かったけど実現方法が間違ってる感じがするよ
表現したいデータとUIを説明してくれれば助言できるかもしれない
38だけじゃ抽象的過ぎる
006657
2009/02/01(日) 13:51:08「こんなデータも表現できるのかな」ってのをやってみただけだから
特に何か目的があって作っているわけではないんだ。
過去にC#(非WPF)の仕事で扱ったデータ構造を参考にしたんだが。
0067デフォルトの名無しさん
2009/02/01(日) 14:21:36目的? 「こんなデータも表現できるのかな」で十分じゃん
0068デフォルトの名無しさん
2009/02/01(日) 16:10:340069デフォルトの名無しさん
2009/02/01(日) 16:11:59C#だけで書けるんならそのほうがやりやすい気がするんだが
xaml使うメリットってなんなの?
0070デフォルトの名無しさん
2009/02/01(日) 16:20:12試してみた俺が保証する
0071デフォルトの名無しさん
2009/02/01(日) 16:22:20後で解読不能
0072デフォルトの名無しさん
2009/02/01(日) 16:35:530073デフォルトの名無しさん
2009/02/01(日) 17:05:34前のスレにXMALなしのサンプルがあったが、アップローダーからは消えてるな。
HTMLをjavascript+DOMで動かすようなもの。
0074デフォルトの名無しさん
2009/02/01(日) 17:49:57ような気がする。
BindingとかStyleとかコマンドとか、理解が進むと便利な仕組みだと実感できる。
0075デフォルトの名無しさん
2009/02/01(日) 20:38:26C#側でコマンドをずらずら書くところをもうちょっと綺麗にしたいけど。
0076デフォルトの名無しさん
2009/02/01(日) 21:43:510077デフォルトの名無しさん
2009/02/01(日) 22:32:12C#に対する利点ってどんなところ?
何が書きやすくなるの?
0078デフォルトの名無しさん
2009/02/01(日) 22:44:39WPFはどっちのやり方も使えるように設計されている。
0079デフォルトの名無しさん
2009/02/01(日) 22:49:40アニメーションとか死ねる
0080デフォルトの名無しさん
2009/02/02(月) 00:29:06ロジックや複雑な関係構築 XAML<C$
0081デフォルトの名無しさん
2009/02/02(月) 00:30:030082デフォルトの名無しさん
2009/02/02(月) 00:50:25個別に本を買って勉強した方がいいですか?
これやりたくて今C#勉強してるんですけど、道のりは長いですね
0083デフォルトの名無しさん
2009/02/02(月) 01:46:19XMLベースの宣言的言語
0084デフォルトの名無しさん
2009/02/02(月) 01:58:250085デフォルトの名無しさん
2009/02/02(月) 02:15:21XAML は言語といっても HTML みたいなものだから、そんなに難しくはないよ。
見たり書いたりしているうちに、すぐに慣れると思う。
0086デフォルトの名無しさん
2009/02/02(月) 03:08:29静的なものはいいんだ
問題はバインド関係
正直リソース系のあの宣言方式はどうにかならんかったのかと
0087デフォルトの名無しさん
2009/02/02(月) 13:20:194通り全て書く以外方法は無いですか?
0088デフォルトの名無しさん
2009/02/02(月) 13:52:330089デフォルトの名無しさん
2009/02/02(月) 14:17:35ROって何ですか?
<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にどう書けばいいんでしょうか?
0090デフォルトの名無しさん
2009/02/02(月) 19:29:18XAMLの階層構造ってなんですか?
0091デフォルトの名無しさん
2009/02/02(月) 23:37:310092デフォルトの名無しさん
2009/02/03(火) 11:54:59そっかなあ。HTMLドキュメントをDOMで操作すること考えたら、
アーキテクチャの設計次第では大したことないと思うが。
第一、いまどきGUIの設計はRADユーティリティ利用が当たり前で、わざわざ
コード書くバカいないだろ。windows formのときにそんなことしてた?
0093デフォルトの名無しさん
2009/02/03(火) 15:06:40Designer.csなんてちょっと複雑になると人間が読むのが難しくなるし
必要に応じて修正することもできない
0094デフォルトの名無しさん
2009/02/03(火) 15:54:12ブラウザの「ネットに繋がってません」的なコードを表示するようになる
これがコントロール関係でのエラーだと修復はほぼ不可能
0095デフォルトの名無しさん
2009/02/03(火) 16:05:19VBだろうとC#だろうとIronPythonだろうと同じデザイナが使える
0096デフォルトの名無しさん
2009/02/03(火) 16:17:270097デフォルトの名無しさん
2009/02/03(火) 17:02:510098デフォルトの名無しさん
2009/02/03(火) 18:24:55せめてExpression Webくらいの値段にしてくれ
0099デフォルトの名無しさん
2009/02/03(火) 19:03:360100デフォルトの名無しさん
2009/02/03(火) 19:46:10> 特にVistaに組み込まれた画像描画機能であるWPFの利用が伸び悩んでいることに触れて
自分らは使ってないくせに、どの口が言うか
0101デフォルトの名無しさん
2009/02/03(火) 19:49:250102デフォルトの名無しさん
2009/02/03(火) 20:20:56いきなりUIだけ別言語使えとかハードルが高すぎたんだ。
0103デフォルトの名無しさん
2009/02/03(火) 20:23:01いままで通りデザイナで作るのに加えて,オプションとしてXAMLを直接いじることもできるようになった
0104デフォルトの名無しさん
2009/02/03(火) 20:31:30おそすぎんだよな。きびきび動いてたら色々と使う所も出てきたと思うけれど。
Longhorn時代に出ていた想定アプリケーションはどこへ行った屋ら
0105デフォルトの名無しさん
2009/02/03(火) 20:33:47昔だってダイアログはリソーススクリプトで別だったじゃないか。
まあ手書きなんてやらないけど。
0106デフォルトの名無しさん
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 とか
0107デフォルトの名無しさん
2009/02/03(火) 21:59:59普及させたいならまずExpressionタダにしろよ
0108デフォルトの名無しさん
2009/02/03(火) 22:05:36凝ったUIを作りこみたいときには、今までオーナードローなんかで
四苦八苦してたことから考えれば、むちゃくちゃ楽なnだけれど、
そもそも「凝ったUIを作りこみたい」という需要がほとんどないんだと
思う。
意外と便利だなと思ったのは、Expressionのプラグイン作ってみたとき。
UIをWPFのUserControlの形で渡して、INotifyChangeを実装しておくと
アプリケーション側でのユーザーの入力が簡単にわかるし、データの
やりとりはマネージ型でできるからこれまた簡単。プラグインを指定フォルダ
においとくだけでリフレクションで自動的にロードしてくれるのでインスコも
至極便利。
MSもWPF普及させたいならIEとかオフィスのIFを公開してWPFでプラグインを
簡単に作れるような実装をすればいいのにね。
IEのBHOなんてとてもいじる気になれない。なんで未だにUIがらみが
COMなんだよ。 お気に入りとかRSSのサイドパネルにカスタムのパネルを
WPFで自由に作って簡単にロードできたらWPFつかうきにもなるんだが。
どんどん作れるようにすればいいのに。
0109デフォルトの名無しさん
2009/02/03(火) 22:08:48WindowsXPで走らせるとモッサリするからな。
WPFが増えるには、WindowsXPの比率が下がらないとね。
Beta1で評価が高いWindows7、製品版の完成度と出来映えに掛かる!
0110デフォルトの名無しさん
2009/02/03(火) 22:55:34まぁ要するに、公開当初のコントロールが不十分で
しかもVS2008のエディタがdでも無く貧弱だった
これに尽きる
上の方でちまちまフォーカスしてプロパティ設定するより直打ちがいいとか抜かしてるのいるけど
直打ちじゃそもそもどんな属性があるのか「その場」で分からんじゃないか
とか言うと「最初にヘルプ嫁ボケ」とか言われそうだが、昔から読み辛いのに定評あるだろヘルプは
ただでさえ作法違うんだから、一目瞭然にすべきだった
0111デフォルトの名無しさん
2009/02/03(火) 23:13:57WPFだとどうすればいいの?
0112デフォルトの名無しさん
2009/02/03(火) 23:17:430113デフォルトの名無しさん
2009/02/03(火) 23:22:24WriteableBitmap?とエスパーしてみる
0114デフォルトの名無しさん
2009/02/03(火) 23:26:39だからどのレベルといわれてもw
WriteableBitmap?ぐぐってみる、ありがとう
エスパー大好き^^
0115デフォルトの名無しさん
2009/02/03(火) 23:26:490116デフォルトの名無しさん
2009/02/04(水) 00:12:43依存関係プロパティとかいうやつですか?
勉強してみます
ありがとう
WriteableBitmap、チョイ見た感じわかりやすそうでいいですね
DirectX?やってるような気分になる
ほんとエスパー大好き^^
0117デフォルトの名無しさん
2009/02/04(水) 00:27:16なんでMSってヘルプ作るのこんなに下手なんだろうな
0118デフォルトの名無しさん
2009/02/04(水) 00:30:09体裁ととのってればよし、みたいな
0119デフォルトの名無しさん
2009/02/04(水) 01:50:230120デフォルトの名無しさん
2009/02/04(水) 16:56:24xaml直打ちはありえんな。今時ウェブデザイナでもそんなことはせん。
そもそも「UIとロジックの分離」ってのが胡散臭すぎる。
ウェブの世界では確かにUIはデザイナが作ってるけど、そもそも商用パッケージ
製品でもない限り、デスクトップアプリケーションの世界UIデザインとロジックを分
離して別々の間が作るなんてあり得ない絵ゾラごとだとおもう。
xamlはxbapとかsilverlight専用でいいよ。
0121デフォルトの名無しさん
2009/02/04(水) 20:45:21osx になってから、Appleの開発者サイトは見やすくなった。
0122デフォルトの名無しさん
2009/02/04(水) 20:48:34互換性ってのを気にしてるんじゃない?
Macはそこらへん無視だから作り直したりできるけど、MSは数十年前からの積み重ねだから自由が利かないんじゃない?
0123デフォルトの名無しさん
2009/02/04(水) 21:17:40多人数開発が当たり前のデスクトップアプリケーションで、UIとロジックをろくに分離せずに開発するとか完全に死亡フラグ
0124デフォルトの名無しさん
2009/02/04(水) 22:25:43画面設計とバックエンドを分離することはあるが、UIと「UIにまつわる」ロジックを
分離するなんてありえんだろ。
0125デフォルトの名無しさん
2009/02/04(水) 23:01:33モデル部、モデル部と連携するUIイベントハンドリングと相互作用、UIでの表示とイベント操作を行うコントロールは分離可能。
WPFでのXAMLは2と3の分離
0126デフォルトの名無しさん
2009/02/05(木) 08:27:38MVCの役割をキチンと分離して見通しがよく、相互に影響の少ない
プログラミングを、なーんて話と、実際にを分離・分業で作成して
うまくいくかどうかって話はべつもんだろ。
UIの入出力なんてそもそも不可分いったい何だから、「分けましょう」
なんて教条主義ふりかざしたところでうまくいかんものはいかん。
デザインがプログラミングとは別に意味を持つwebの世界ならともかく、
デスクトップアプリケーションでV,C分離して分業する意味もないし、
そんなことして品質と生産性が保てるとは思えん。
理想論としては分業しなくても極力見通しよく設計する方がいいのは
確かだけれど、
・分業するためにはVCをきっちり分離しておかないと という話と
・分業も必要ないのに VCをがちがちに分けすぎたものが果たして
使いやすいのか? という話を混同してない?
0127デフォルトの名無しさん
2009/02/05(木) 08:56:36いや、業務アプリでも捨てコードとかでないならきっちりやっとくべきだと思うけどね。
動かしたあととかに色々変えてくれとか言うものも出てくるはず。その中にはきちんと分離しておけばZAMLレベルの修正で住むものも宅差なると思われ。
ドメインモデルとのやりとりはUIの中のVからはやったらあかん。
0128デフォルトの名無しさん
2009/02/05(木) 11:04:03ごめん、俺の論点の出し方がわかりにくかったかも。
・どんなプログラムでもMVCを疎な設計にしておくべし → 同意
・M,V,Cを分業して別々な人が設計するならMVCの分離は必須 → 激しく同意
ところが上二つから
・V,Cは別々の人が設計すべき→・だからXAMLがいいんだ
という話にはつながらないはず。
分業はほんらいできればしたくないんだよ。究極には一人の人が設計から
実装まで完結できればそれが一番品質も、生産性も高いと思う。
ところが現代の大規模システムではそんなのとうてい無理だし、ウェブ系の
アプリケーションのようにデザインが重視される世界ではそもそもプログラマに
そのスキルがないから、「仕方なく」分業するわけだ。
XAMLは、その「仕方なく」の世界のために作り出されたものだから、別に
そんな必要のないときに使うと 使いにくいものになっているってのが俺の持論。
だいたい、UI設計の分離といっても、ちょっとした振る舞いやレイアウトの変更
程度なら確かに"XAMLレベルの修正ですむ"ケースもあるだろうけれど、
現実のプロジェクトではそんなことあり得ない。 これはMVCモデルのせいじゃ
なくて、 何をしたいのかよくわかってない糞ユーザーと、いつまでも
要件も仕様も凍結できず工程がぐだぐだの腐ったプロジェクトマネージメントの
せいだが…。
MVCモデル開発が仕様変更に強いというのは嘘だと思う。仕様がキチンと確定
していれば、MVCをキチンと分離した設計によって、効率的な分業が可能
というのが正しいのではと思う。
少なくとも現実に目を向ける限り、分離が可能なのは実はVとCじゃなくて
"Look"とVCだと思うんだよなぁ。。。"Look”のためだけならXAMLもあながち
悪くはないと思うが…。
0129デフォルトの名無しさん
2009/02/05(木) 16:13:42これが違うというのは同意。また分業しないほうがよいというのも同意。
でも仕様が不明確で肯定がグダグダになるのとMVCなどで分離するかどうかはまた別のはなしかと。
どうせ全員一致のMVCの定義すらないわけだしそこらへんの言葉遊びしても意味ないかと。
WinFormsよりはWPFのほうがいずれにしてもUIとモデル部などを分離しやすいのは確かだし。
仮に分業目的でなくてもWPFでの分離の仕方はそれなりにいいと思う。その手段としてXAMLがあるわけだが、それは必須条件じゃないし。
0130デフォルトの名無しさん
2009/02/05(木) 16:40:28ここ面白いな
0131デフォルトの名無しさん
2009/02/05(木) 17:19:19かなり面白いな。
どっかにサンプルソースがないのかねぇ…。みつけられんかった。
0132デフォルトの名無しさん
2009/02/05(木) 21:32:15愛用のoperaじゃぴくりともう五課ねぇ・・・
0133デフォルトの名無しさん
2009/02/05(木) 21:43:06さぁ、Opera 10 alphaを入れるんだ
0134デフォルトの名無しさん
2009/02/05(木) 23:09:02何が面白いんだよ馬鹿しかもSilverlightだからスレ違いだろボケ
0135デフォルトの名無しさん
2009/02/05(木) 23:25:41HTMLはスレ違いとかならかわいげがあるが
0136デフォルトの名無しさん
2009/02/05(木) 23:37:060137デフォルトの名無しさん
2009/02/06(金) 00:02:560138デフォルトの名無しさん
2009/02/06(金) 14:19:440139デフォルトの名無しさん
2009/02/06(金) 14:32:060140デフォルトの名無しさん
2009/02/06(金) 21:40:480141デフォルトの名無しさん
2009/02/07(土) 03:47:150142デフォルトの名無しさん
2009/02/07(土) 04:43:180143デフォルトの名無しさん
2009/02/07(土) 12:58:410144デフォルトの名無しさん
2009/02/07(土) 13:06:59〜〜〜="True"
じゃぁ文字列になってしまう。
0145デフォルトの名無しさん
2009/02/07(土) 15:16:510146デフォルトの名無しさん
2009/02/07(土) 15:48:490147デフォルトの名無しさん
2009/02/07(土) 19:15:47ありがとう
>>143
なんで聞いてるか理解できないならどっかいけ
0148デフォルトの名無しさん
2009/02/08(日) 12:33:47プロパティの型がBooleanならそれで通る
ContentみたいにObject型の場合は,ルート要素で
xmlns:sys="clr-namespace:System;assembly=mscorlib"
とした上で
<Button><Button.Content><sys:Boolean>True</sys:Boolean></Button.Content></Button>
0149デフォルトの名無しさん
2009/02/08(日) 18:40:59右下に配置したボタンがずっと右下にあるようにするにはどう設定すればいいですか?
0150デフォルトの名無しさん
2009/02/08(日) 22:33:09WinFormsのDockみたいな考え方はしない
0151デフォルトの名無しさん
2009/02/08(日) 22:36:550152デフォルトの名無しさん
2009/02/09(月) 00:45:24VerticalAlighnment="Bottom", "HorizontalAlignment="Right"
じゃだめなの?
0153デフォルトの名無しさん
2009/02/09(月) 01:00:11Gridや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>
0154デフォルトの名無しさん
2009/02/09(月) 01:00:580155デフォルトの名無しさん
2009/02/09(月) 07:51:19微妙にスレ違いかもしれないけど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にデモ動画を
アップしてみたけど、ミクさんとかの面白いネタがあるわけじゃない。
ニッチ市場向けの内容なのに長文ですまない。せっかくだから誰かが活用してくれるとうれしい。
0156デフォルトの名無しさん
2009/02/09(月) 12:31:01ありがとうございます
Dock、Dockの階層化でやってみて所望の動作ができることを確認しました
>>152
やってみ
0157デフォルトの名無しさん
2009/02/09(月) 15:36:09152です。
<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>
じゃ駄目なの?と思ったんだけど、実際にはほかのコントロールも配置するんだから
実際にこんなコードにはしないね、確かに。
0158デフォルトの名無しさん
2009/02/09(月) 18:56:36なんでTipsみたいなものをもっと大量に用意しないんだろうな。
ネットであさったりあれこれ実験したり、(それこそこういうとこで聞いたり)に
多くの人間がどれだけ無用な時間を取られていることか。
割く人員が少ない(天下のMS様だがそういう金はなぜかない)とでもいうのなら、例えば適当な学生を複数雇って、
よくあるタイプのフリーソフトを指定して(この「ちょっと高機能な関数電卓ソフト」の類似品を1からWPFで作ってみてくれ)
わかりにくかった点はどこで、どう解決したのレポートを書かせて、
適当にリライトしてアップすればいい。
「ただでも習得しようと思っていたところ」だというので、
1本十万円とか1ページ1万円くらいでバイトとして喜んでやる奴幾らでもいるだろう。
節約したいならインドあたりの工科大の学生とかでいいわけで。
「WPFでこれらの見た目も機能もカラフルな数々の便利ソフトがすぐ出来ます。
全ソースと整理されたわかりやすい解説はこちらのページ群をご参照」
使う気になる人間・会社、ぐっと増えるんじゃないんだろうか。
そういうことをほとんどせず>>100
0159デフォルトの名無しさん
2009/02/09(月) 19:10:270160デフォルトの名無しさん
2009/02/09(月) 19:16:25ゲーム廃人よりたちが悪い。
そこに付け込んだのがWPF
つかわなきゃいいだけ
0161デフォルトの名無しさん
2009/02/09(月) 20:53:10かなり品ぞろえが悪かった(3,4冊くらいしかなかった)
WPF大丈夫なのか?
不安になって本買うのやめた
0162デフォルトの名無しさん
2009/02/09(月) 21:10:00哲学みたいなもんだ
0163デフォルトの名無しさん
2009/02/09(月) 21:30:560164デフォルトの名無しさん
2009/02/09(月) 21:34:080165デフォルトの名無しさん
2009/02/09(月) 22:09:11使う人少なければ開発続かないだけだし
0166デフォルトの名無しさん
2009/02/09(月) 22:37:20MS系技術がやたらめったら嫌われる傾向の日本では、今後も流行ることないから、
日本語ドキュメントが山ほどあるみんなが使っているものを触らないと落ち着かない人であるとか、
マイナーなものに手を付けることを、今後(その技術のエッセンスがどっかで生き残るだけじゃなくて)
その製品自体が普及するか否かだけで不安になる人は、来ないほうがいいよと言ってあげただけ。
0167デフォルトの名無しさん
2009/02/09(月) 22:44:290168デフォルトの名無しさん
2009/02/09(月) 22:49:57UI技術に投資するなんて無駄なだけ。
もっとやるべきことがある
0169デフォルトの名無しさん
2009/02/09(月) 23:24:52本質がわからない。辿りつけない層であり、GDPを上げるために仕込まれた人口比率の最も多い層でもある
プログラミングすらしないで目的を達成させることのほうが大事
お前の言っているやるべきこともたぶん糞
0170デフォルトの名無しさん
2009/02/09(月) 23:36:27そりゃそうだが、プログラミングする以上はちゃんと勉強しろよ
0171デフォルトの名無しさん
2009/02/09(月) 23:46:35それまで待ってろ。もう50年もすれば人がいらなくなる
0172デフォルトの名無しさん
2009/02/09(月) 23:51:36その頃ロシアでは ウォッカの生成方法を考えるAIの研究をしていた
0173デフォルトの名無しさん
2009/02/10(火) 00:41:09未来の二つの顔だな
あれの中ではナイスなAIのおかげで皆働かなくてよくなったとなってたが、もし実現しタラ超格差になるだけのような気がする。
0174デフォルトの名無しさん
2009/02/10(火) 01:08:05今すごい使い方を編み出せばMSからMVPをもらえるかも知れん
やってやるぜ
0175デフォルトの名無しさん
2009/02/10(火) 01:18:21釣り針垂らしてスレチの阿呆に餌を与えようとするなw
0176デフォルトの名無しさん
2009/02/10(火) 08:14:56せっかくなので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の恩恵を受け易い。・・・はず。
0177デフォルトの名無しさん
2009/02/10(火) 22:40:41ttp://msdn.microsoft.com/ja-jp/library/dd365013.aspx
0178デフォルトの名無しさん
2009/02/10(火) 22:54:520179デフォルトの名無しさん
2009/02/11(水) 13:04:35OpacitySliderはスライダーで、
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"));
って変更すると回転しなくなる。何でだか分かる人いる?ちなみにスライダーを回転させたいん
じゃなくて、別の問題を単純化したらこうなったんだけど。
0180デフォルトの名無しさん
2009/02/12(木) 04:21:50Storyboardを使ってミクさんをアニメーションさせたので、またコードと動画を貼っておく。
http://sites.google.com/site/augmentedrealitytestingsite/download
http://www.nicovideo.jp/watch/sm6116619
http://www.nicovideo.jp/watch/sm6117872
WPFって一応今の流行だと思うんだけど、何でこんなに過疎ってるの?
0181デフォルトの名無しさん
2009/02/12(木) 04:54:52社員を遊ばせておくぐらいなら何かを作らせた方がいいという時だってある
Vista、C#、WPFなんかがそれに当てはまる。
0182デフォルトの名無しさん
2009/02/12(木) 07:14:01これって、描画領域になんか重ねたりとかも出来るの?
0183デフォルトの名無しさん
2009/02/12(木) 07:31:00Canvasの上にViewport3Dという構成だからCanvasに重ね描きするかその上に別のコンテナを乗っけてViewport3DとZオーダーを調節すれば良いんじゃない?ソースあるから適当にいじってみて。
0184デフォルトの名無しさん
2009/02/12(木) 11:19:15ファイル名を変更しても、リファクタが効かず、毎回手で変更しないといけない
のですが、これってバグですか?
ファイル名ではなくクラス名としてのwindow1の名を変更したときにはちゃんと
xamlにも変更を反映してくれるので、技術的な問題と言うよりも、忘れられちゃった
としか思えないんですが。
みなさん、デフォルトの"window1.xaml"のまま使っているんでしょうか?
0185デフォルトの名無しさん
2009/02/12(木) 11:27:29C#の仕様上はファイル名と中のクラスには何の関係もないんだから、
中に記述されていうクラスのクラス名を変えないとリファクタリングは
効かないに決まっている。ただ、その場合もxamlの記述までは置換され
なかったような記憶があるけれど。
0186デフォルトの名無しさん
2009/02/12(木) 11:28:30>>184
あ、その場合にはうまく行くのね。
0187デフォルトの名無しさん
2009/02/12(木) 11:52:23windows formのときは メインウィンドウのcsファイルの名前を変更すると
formクラスの名前も、formクラスの参照先も、designer.cs やresxファイル
の名前も全部自動で変えてくれたので、Form1.csをMainForm.csとか
自分のわかりやすい名前に変えるだけで手間いらずだったんですけどね…。
理想はwinformの時みたいに、Window1.csをMainWindow.csに変更したら
window1クラスの名前およびその参照先を全部MainWindowクラスにして、
app.xamlのstartupUriまで一気に変えてくれることなんですけどね。
今は ファイル名の変更、クラス名の変更、startupUriの変更と3ステップ必要
なのがにくい…。
0188デフォルトの名無しさん
2009/02/12(木) 13:13:040189デフォルトの名無しさん
2009/02/12(木) 16:08:23WPFでIconは全てImageに変わったというのは判ったのですが、アイコンハンドルから画像に変換することができませんでした。
もしかして、別の方法でハンドルからアイコン画像を変換する方法があったら教えてください。
よろしくお願いしますm(_ _)m
0190デフォルトの名無しさん
2009/02/12(木) 16:33:13186です。
Windows formsだとそうなんだ。知らなかった・・・。
IDEがスタイルを強要するみたいで個人的には嫌だけど、スタイルが受け入れられるなら便利では
あるね。それと多分JAVA出身の人なんかはファイル名と中身が関連付かないと気になるんだろうね。
そう言えば、System.Windows.Forms.Formを含んでいるcsファイルを開くと必ずデザイナが
開いて、csファイル毎にデザイナで開くかエディタで開くか設定できないのも個人的には嫌だった
なあ。しかも、Formを継承したクラスが一番初めにないとエラーが出たり。Windows Formsでは
C#とクラスライブラリの仕様だけでなくIDEの支援もセットでUIのフレームワークを形成して
いたんだよね。昔のVBと同じで。それがWPFで解決されてUIはC#から独立した言語/デザイナ
で定義するようになったのだから今さら言語仕様にない事をIDEが勝手な判断で手出しするのは
控えてくれた方が個人的にはうれしいなあ。x:Classなんて一属性に過ぎないのだからxamlの
ファイル名と勝手に関連付けられたりしない方がすっきりする。まあ個人的な見解ですが。
0191>>189
2009/02/12(木) 16:49:520192デフォルトの名無しさん
2009/02/12(木) 16:53:15俺は知らない事なので、せっかくだから解決内容を書いてもらえるとうれしい。
0193>>189
2009/02/12(木) 17:11:01WPFでフォームをホストしてから、その中で「FromHandle」を使っただけという残念な方法です。
恐らくWPF内でForm系列のものを利用できるような方法があると思うのですがMSDNにも載っていないようなので諦めました(爆
0194デフォルトの名無しさん
2009/02/12(木) 17:14:340196デフォルトの名無しさん
2009/02/13(金) 00:33:090197デフォルトの名無しさん
2009/02/13(金) 05:52:260198デフォルトの名無しさん
2009/02/13(金) 06:29:430199デフォルトの名無しさん
2009/02/13(金) 21:04:43額ランキングを見ると、C#が前年比66万6000円増と大幅に上昇した。2008年における平均年収ランキン
グでも1位となっている。
ttp://headlines.yahoo.co.jp/hl?a=20090213-00000000-zdn_ait-sci
ついに来たな、時代が俺に追いついた
0200デフォルトの名無しさん
2009/02/13(金) 21:15:54ついにきたあああああああああああああ
0201デフォルトの名無しさん
2009/02/13(金) 22:49:06ちょっと前と比べてかなり速くなったしドライバとかでもない限り今わざわざCやC++でやる必要もなくなってきたしな
ASP.NETやSilverlightもあるしMonoを使えばMacでもLinuxでもUnixでも動くしバックにマイクロソフトがいる
何が言いたいのかって言うと今までが安すぎたんじゃねってこと
ついでにこれ貼っておきますね
http://japan.zdnet.com/news/internet/story/0,2000056185,20388173,00.htm
0202デフォルトの名無しさん
2009/02/13(金) 23:05:22なんかもう完全にMSの飼い犬になってるな。そのうちNovellやめて
MSに入社するんじゃないか?
0203デフォルトの名無しさん
2009/02/13(金) 23:25:04年を重ねるうちに丸くなったかお金のおいしさをしったかのどっちかだろうな
0204デフォルトの名無しさん
2009/02/14(土) 02:03:55どうしたらいいんでしょうか?
winformなら「新しい項目の追加」でformを追加しておいてnewしてshowすれば
表示できましたが、WPFだとそもそもユーザーコントロールしか追加項目
に現れてきませんが、そういうことはそもそもできないんでしょうか?。
0205デフォルトの名無しさん
2009/02/14(土) 07:59:163.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.
よろしくお願い致します。
0206デフォルトの名無しさん
2009/02/14(土) 11:49:00http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1115761341
それにスレチな。
0207デフォルトの名無しさん
2009/02/14(土) 13:05:02自己解決しました。
いったんUserControlを新規項目として追加して
UserControlをWindowにxaml側、cs側両方で書き換えたら
普通に new →show()で表示することができました。
でもなんでIDEから簡単にwindow追加できないんだろう。
0208デフォルトの名無しさん
2009/02/14(土) 13:22:51それはもうやりました・・
0209デフォルトの名無しさん
2009/02/15(日) 06:33:21http://www.nicovideo.jp/watch/sm6155021
http://sites.google.com/site/augmentedrealitytestingsite/download (ソース:ARWithWPFMikuEmitted.zip)
WPFの3Dにもようやく慣れてきた・・・
0210デフォルトの名無しさん
2009/02/15(日) 14:47:420211デフォルトの名無しさん
2009/02/15(日) 15:59:42このプロパティに、TemplateプロパティにListboxItemをターゲットとするコントロールテンプレートを割り当てるSetterを含むスタイルを与えてやればよい、と思う。そのコントロールテンプレートの中でTriggerを設定するのね。
ListViewの場合でしかやった事がないので外してるかもしれないけど。
0212211
2009/02/15(日) 16:11:46確か、ItemContainerStyleプロパティに割り当てるスタイル中で、<Style.Triggers Property="IsSelected" ...みたいにやれば良いという単純な話だった気がする。
何かの理由でデフォルトのコントロールスタイル中の同様のトリガーが優先されてしまうために
コントロールテンプレートまで書き換えた事があったんだけど、多分普通は↑で済むと思う。
0213デフォルトの名無しさん
2009/02/15(日) 16:18:26試してみる。ありがとー
0214デフォルトの名無しさん
2009/02/15(日) 16:18:31wpf listview selection colorでぐぐったらすぐ出てくるよ
0215211
2009/02/15(日) 16:31:34<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}">
0216211
2009/02/15(日) 16:36:10Background="{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>
0217211
2009/02/15(日) 16:37:15あれ、俺道化?まあとりあえず最後まで書くので必要なら使って。
<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のトリガーとか)ので、実際にはもう少し色々試してみて。
0218デフォルトの名無しさん
2009/02/16(月) 00:55:570219デフォルトの名無しさん
2009/02/16(月) 12:51:56Windows7だとどうなりますか?快適に動くでしょうか?
0220デフォルトの名無しさん
2009/02/16(月) 13:03:24俺は、古いPCにWindows 7を入れたので細かいパフォーマンスの比較はできないけれど、
WPFアプリの起動は確実に速くなっている。
0221デフォルトの名無しさん
2009/02/16(月) 18:17:05ググって見たけど、デフォルトのテンプレートが使っているリソースのキー名で
ブラシをListBoxのスコープのリソースで定義する方法しか出なかった。
チートっぽいけどこれ?
0222デフォルトの名無しさん
2009/02/16(月) 19:10:53Rectangle.Fill変更すれば変わるっしょ
0223デフォルトの名無しさん
2009/02/16(月) 23:30:51グラフのようなもの変えるんだとLineElementをつくり変えて入れ替えないと駄目なのかね?
とりbえずうごくんbセがなんか無駄bネ子としてるよb、な気が・・・
0224デフォルトの名無しさん
2009/02/17(火) 07:35:15Polyline置いてdependency property使えば瞬殺だと思うんだが
0225デフォルトの名無しさん
2009/02/17(火) 18:01:40ttp://blogs.msdn.com/hiroyuk/archive/2009/02/16/9425120.aspx
>これを無効にするには、RenderOptions.EdgeMode="Aliased" を使います。
これってフォントには応用できない?単純にテキストボックスに対してこれやってもなんも変わんなかった
0226デフォルトの名無しさん
2009/02/17(火) 18:10:32リンク先の直前に
>Windows Presentation Foundation (WPF) は常にアンチエイリアスされたテキストを
>生成します。生成されたテキストが静的な場合は、ピクセル スナップされます。これに
>より、グリフがピクセルグリッド上に直接配置されて、アンチエイリアスされたテキス
>トの外観が鮮明になり、テキストがよりクリアになります。ただし、Windows Presen
>tation Foundation (WPF) が、スクロール、スケーリング、アニメーション化された変
>換など、アニメーション的な動きを検出すると、そのような動きが完了するまでピクセ
>ルスナップはオフになります。アニメーションやスクロールの動きが完了すると、ピク
>セル スナップがゆっくりと復活します。
だそうなので、アンチエイリアスはするけれど、ぼやけないように気は使ってくれるみたい。
だから気にしないで良いんじゃない?
0227デフォルトの名無しさん
2009/02/17(火) 18:37:370228デフォルトの名無しさん
2009/02/17(火) 18:42:450229デフォルトの名無しさん
2009/02/17(火) 18:49:200230デフォルトの名無しさん
2009/02/17(火) 18:55:04ClearTypeにならないんじゃね?
RGBディスプレイで作った画像がBGRディスプレイで見ると悲惨になるような設計されてないはずだし。
0231デフォルトの名無しさん
2009/02/17(火) 20:19:01ここからダウンロードできる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
から手に入るみたい。
0232デフォルトの名無しさん
2009/02/17(火) 20:29:190233231
2009/02/17(火) 21:11:56ちょっと調べて知恵をつけて
midl /newtlb effects.idl
してみたんだけど、effects_i.c, effects_p.c, dlldata.cしかできない・・・
これ以上は初心者板向けになりそうだから、一週間たってwpfwmp.zipが手に入っていなかったら
まじめにCOMを勉強するわ。
0234デフォルトの名無しさん
2009/02/17(火) 21:44:31殺しちゃうのかよw
0235デフォルトの名無しさん
2009/02/17(火) 21:46:25一番下まで来たかどうかを調べる方法って、どうすればいいんでしたっけ?
やりたいことは
ScrollViewer に対して、コントロール内で PageDown() メソッドを
呼んだあと、もうこれ以上ページを下におろすことができないかどうかを知りたい。
でもなんだかうまくいきません。
ぐぐっても出てこないし、歯がゆい。
もしご存知でしたら教えてください。。。。。。
0236デフォルトの名無しさん
2009/02/17(火) 22:51:36Windows に Image を張って、
そこに、jpg 画像ファイルを読み込みました。
この画像ファイルに、文字列を書き込みをしたいんですが、
どのようにしたらよいでしょうか?
Image.Source から、DrawingContext を生成してなるのかな
と思いますが、やりかたがわかりませんでした。
0237デフォルトの名無しさん
2009/02/17(火) 22:54:210238デフォルトの名無しさん
2009/02/17(火) 22:56:16すいません
0239デフォルトの名無しさん
2009/02/17(火) 23:02:28HorizontalOffset/VerticalOffsetとScrollableWidth/ScrollableHeight
0240デフォルトの名無しさん
2009/02/17(火) 23:02:51なんでもかんでもGraphcsで描くWinFormsとは根本的に考え方が違うんだよな
特殊な場合を除いて基本的にDrawingContextは使わない
DrawingVisual作ってImageDrawingやGlyphRunDrawingを追加して
RenderTargetBitmap.Renderが正当かな
0241デフォルトの名無しさん
2009/02/17(火) 23:09:310242デフォルトの名無しさん
2009/02/17(火) 23:15:13>>236じゃないけど,最終的にRenderTargetBitmap以外の方法はあるのか知りたい
0243デフォルトの名無しさん
2009/02/17(火) 23:24:25<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>...
0244デフォルトの名無しさん
2009/02/17(火) 23:26:56ImageDrawingは?
何をもって最終とするのか知らんが
0245242
2009/02/17(火) 23:30:47その完成したImageSourceを作る段階
0246>>189
2009/02/17(火) 23:30:52通常ならどちらか一方がチェックされれば、もう片方はチェックが外れるようにしたいです。
この方法では一度ならラジオボックスのチェックがどちらか一方に付くようになるのですが、
もう一度チェックしなおすと両方がチェックされた状態になってしまいます。
プロパティの値も実際に見てみたのですが、一度だけ成功していますが、それ以降は値が変化していないということになりました。
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
(ここで見た目は両方ともチェックされた状態になってしまうが、値は希望通り)
0247デフォルトの名無しさん
2009/02/17(火) 23:32:07コレハンミスです。
よろしくお願いします m(_ _)m
0248236
2009/02/18(水) 00:01:49ありがとうございました。
>>245
そのとおりです。
238は俺じゃないんだが・・・。
書き込んだのを忘れてるんだろうか。
0249244
2009/02/18(水) 00:08:350250デフォルトの名無しさん
2009/02/18(水) 00:23:350251デフォルトの名無しさん
2009/02/18(水) 00:25:49その年でもう健忘症か?
ほっとくと中川みたいになるぞ
病院いってこい
0252デフォルトの名無しさん
2009/02/18(水) 00:37:560253デフォルトの名無しさん
2009/02/18(水) 03:22:56デザイナ側はコードで設定される事を知らないので
>読み込みで問題が発生しました
>デザイナを読み込む前に修正しなければならないエラーがドキュメントに含まれています。エラーを修正してからデザイナを再度読み込んでください。
と言われてデザイナが読み込まれない。
このケースだとXAMLでリソースを定義してDynamicResourceとして読み込ませておいて、InitializeComponent後に設定するのが正攻法だと思うけど
<Window.Resources>
<app:Test x:Key="Test"/>
<Window.Resources>
この定義方法だと、勝手にインスタンス作ろうとして引数0のコンストラクタがないとエラーになってしまう。
デザイナにコード側で設定されるって事を教えるにはどうすべきなのでしょうか。
0254デフォルトの名無しさん
2009/02/18(水) 09:30:380255231
2009/02/18(水) 12:53:18ありませんが、どうやら自力でできそうです。>232さん、ありがとうございました。
0256デフォルトの名無しさん
2009/02/18(水) 13:11:13ちなみにxamlはつかってません
C#でしこしこ書いてます
0257デフォルトの名無しさん
2009/02/18(水) 13:21:49OnRenderをオーバーライドすればそれっぽいことができるけど激しく非推奨
要素を置いていくだけで同じことできるしパフォーマンスも良くないし何よりWPFらしくない
0258デフォルトの名無しさん
2009/02/18(水) 13:25:51どうすればいいでしょう?
データ更新が多いのでできるだけ早く描画したいのですが
0259デフォルトの名無しさん
2009/02/18(水) 13:31:38普通に要素を置いていったあとはそれらのプロパティの変更だけですませて
できるだけ要素の入れ替えは行わない
画面に表示するだけならDrawing系の要素を使うと軽い
0260デフォルトの名無しさん
2009/02/18(水) 13:41:41Drawing系の要素って何?orz
0261デフォルトの名無しさん
2009/02/18(水) 13:47:07このへん読め
理解できないなら理解できるようになってから気にすればいい
0262>>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>
0263デフォルトの名無しさん
2009/02/18(水) 15:42:50Drawing系の要素、なんて言葉どこにもでてこない
textBlockとかいうのつかったほうがはやいってことか?
0264デフォルトの名無しさん
2009/02/18(水) 15:47:13画面に描画するにはDrawingVisualを使う
0265235
2009/02/18(水) 18:03:32レスありがとうございます。
各プロパティで試してみたのですが、うまくいかない原因は別にあったようです。
実際にスクロールバーの制御をおこなうときに、スクロールバーが表示されていなかったという
何ともお粗末な原因でした。
穴があったら入ってゆっくり眠りたい気持ちです。
0266デフォルトの名無しさん
2009/02/18(水) 23:41:200267デフォルトの名無しさん
2009/02/19(木) 00:04:130268デフォルトの名無しさん
2009/02/19(木) 02:58:300269デフォルトの名無しさん
2009/02/19(木) 10:17:530270デフォルトの名無しさん
2009/02/19(木) 15:11:22自ブログの充実ばかりで、書籍の執筆熱が冷めている上に、インターネットに
押されている出版社も支援が薄い。
出し惜しみ+買い控えの無限ループ → 書籍出版の衰退
0271>>189
2009/02/19(木) 15:58:190272デフォルトの名無しさん
2009/02/19(木) 16:16:14探したいものがあって検索してもなかなか見つからない
数十分かけてやっと見つかったと思ったら大雑把にしか書いてなくて迷うこともある
>>271
ヒントでねーわ選択画面ねーわで結局本片手にやるはめになるよな
0273デフォルトの名無しさん
2009/02/19(木) 16:20:570274デフォルトの名無しさん
2009/02/19(木) 21:38:210275デフォルトの名無しさん
2009/02/19(木) 22:10:32特定のクラスについて調べたいとか、この辺に探してるやつがある筈 と思う時ぐらい
調べる対象が漠然としてる時は、ググった方が早いね。
0276デフォルトの名無しさん
2009/02/19(木) 22:43:21クラス名でググった方が早くね?
http://www.google.co.jp/search?q=System.Diagnostics
0277デフォルトの名無しさん
2009/02/19(木) 23:48:27分裂したメリット、デメリットが判らない。
自分的にはVisual Studioではコード候補が出るから何とかなる気もする、
Blendは即コンパイル。
こんな感じ?
0278デフォルトの名無しさん
2009/02/20(金) 00:06:39タダで配るならともかくこれは完全に失敗だよな
0279デフォルトの名無しさん
2009/02/20(金) 01:18:310280デフォルトの名無しさん
2009/02/20(金) 01:28:46多分Blendに存在価値がないのが問題
どう見たってプログラム素人が手ェ出せるUIじゃないだろ・・・
0281デフォルトの名無しさん
2009/02/20(金) 02:25:33xamlを意識しなければそれなりに使えそうだけどなぁ
ただ、デザイナじゃないからblendは使いこなせなかったけどw
とりあえず、フォーカスするとキモい挙動をする(グラデーションが動く)ボタンなら簡単に量産できると思う。
(センスのない自分が嫌になれるよ!)
0282デフォルトの名無しさん
2009/02/20(金) 07:43:01何つーかもうちょっと全体的に使いやすくなって欲しいんだよなぁ
FLASH用のツール作ってた人なんだろ、これ作ったの。
0283デフォルトの名無しさん
2009/02/20(金) 08:52:06いきなりxaml使えといわれても何やってるのかよくわからないものは気持ち悪くてさわれない
0284デフォルトの名無しさん
2009/02/20(金) 09:37:19それを言うならxamlとC++の変換じゃないの?
C#から使うものだけど実装自体をC#でやってるわけじゃなかろう。
俺は詳しくないからxamlをパースしたあとC#に変換しているのか
C++で直接動かしているのか詳しくは知らないが、
283はC#のメモリ管理が内部で何やってるかわからんから気持ち悪いとか言って
わざわざC++で書いたりするわけじゃないんだろう?
ああいう記法でラッピングした以上制約が色々あるから気になるならWindowsFormでやればいいし
そこまで潔癖に気にするやつが使う代物でもないと思う。
0285デフォルトの名無しさん
2009/02/20(金) 10:11:120286デフォルトの名無しさん
2009/02/20(金) 13:02:03これはひどい
> C#のメモリ管理が内部で何やってるかわからんから気持ち悪いとか言って
CGの動作原理を理解すれば気持ち悪くなくなる
同様に、XAMLとC#の対応関係を理解すれば、XAMLに対する気持ち悪さも消えるだろう
対応関係はDependencyPropertyの解説などを見れば、だんだんわかってくるが、
てっとり早く理解する為に変換ツールが欲しくなるのも理解できる
けど、変換ツールは見たことないな
ライブラリはXAMLをパースして、(ILを出力せずに)直接オブジェクトを生成しちゃってるし
0287デフォルトの名無しさん
2009/02/20(金) 13:53:48VisualStudioにそういう機能なかったっけ?
0288デフォルトの名無しさん
2009/02/20(金) 14:08:350289デフォルトの名無しさん
2009/02/20(金) 14:15:58```
</x:Code>
のことを言ってたりする?
これならXAMLの中にそのまま記述できるけど?
0290デフォルトの名無しさん
2009/02/20(金) 14:34:26ああ、それだった。たいした情報はないのな。
0291デフォルトの名無しさん
2009/02/20(金) 16:03:42StartupUriのxamlをフレームワークのAPI使ってロードするだけのコードだからね。
0292デフォルトの名無しさん
2009/02/20(金) 21:04:52>>284が言うようなC#のメモリ管理なんて言ってないだろうが。
XAMLで書けることはC#で書けるんだから、C#がわかるなら気持ち悪いなんて事は無いだろうに。
0293284
2009/02/20(金) 22:05:03milcore直接たたいてるのはWPFでXAMLじゃなかったわな。
直接たたいてるとしたらアンマネージドだからああいう物言いになったと。
メモリ管理どーのってのはあくまでも例え。286は例えとわかってくれているが292には通じんかったようだ。
GCは挙動わかっててさえ気持ち悪いとか非効率とかよく言われるものなのに、
まずGC積んでるC#自体を気持ち悪がらないのにXAML程度を気持ち悪がる理由がわからんって事。
例え悪くてすまんな、低脳なんで。
ただ、XAMLで書けることはC#で書けるというのは大抵書いてあることだけど
そのままパースして翻訳されてると俺は思ってないし、
そう考えると実際に内部で何やられてるかわからんと言う意味で
283が気持ち悪がってるのかなとは思い直した。
0294デフォルトの名無しさん
2009/02/20(金) 22:12:51XAMLをパースしてるのはフレームワークのマネージコード
0295デフォルトの名無しさん
2009/02/20(金) 22:20:51SilverlightはアンマネージC++にごくごく薄いマネージドの皮をかぶせただけ
0296デフォルトの名無しさん
2009/02/20(金) 22:28:05把握した。
0297デフォルトの名無しさん
2009/02/21(土) 00:04:480298デフォルトの名無しさん
2009/02/21(土) 01:52:020299デフォルトの名無しさん
2009/02/21(土) 09:39:090300デフォルトの名無しさん
2009/02/21(土) 09:39:450301デフォルトの名無しさん
2009/02/22(日) 22:20:190302デフォルトの名無しさん
2009/02/22(日) 22:25:450303デフォルトの名無しさん
2009/02/22(日) 22:27:50InnerExceptionとは何でしょう?
0304デフォルトの名無しさん
2009/02/22(日) 22:48:19検索してもさっぱりわかりませんでした
それでは調べてみようと呼びだしてるメソッドの中身をtry catchで囲んでみたらなぜかエラーが起きなくなりました
なにがおきてるんでしょう?
0305デフォルトの名無しさん
2009/02/22(日) 22:56:08ほにゃらら
}catch(Exception e){
MessageBox.Show(e.InnerException.ToString());
}
してみたら?ていうか、キャッチしなかった場合にデバッグ環境で表示されるダイアログでも
InnerExceptionは見れるけど。
0306デフォルトの名無しさん
2009/02/22(日) 22:58:33時間なくてあせってて
原因もわかりました
お騒がせしました
お付き合いありがとうございました
では
0307デフォルトの名無しさん
2009/02/22(日) 23:14:020308デフォルトの名無しさん
2009/02/22(日) 23:23:18だから何が起きてるのかさっぱりわからなくてパニくりました
はずかしい
0309デフォルトの名無しさん
2009/02/23(月) 01:12:03ちゃんと例外の発生したスレッドというかメインスレッド側で処理しておけ。
0310デフォルトの名無しさん
2009/02/23(月) 11:55:11BlendでBindingするときに、勝手に全ての対象へ「x:Name」を定義してしまうのですが、
デフォで親参照とかにする設定などありますか?
0311デフォルトの名無しさん
2009/02/23(月) 12:51:58コードビハインドのコンストラクタにあるInitializeComponent()の定義を参照
すると、window1.g.csみたいなファイルが生成されて、xamlを置き換えた
windows forms時代のようなコードが見られるんですが。
そうやってるなら、いっそのことxamlなしでc#オンリーの選択肢もほしい。
RADツール使うなら、xamlだろうとc#だろうと、かわらんし。
>>283
激しく同意だ。xamlはとにかく裏で何やってるのかさっぱりわからんのが
気持ち悪い。
さっきのInitializeComponent()メソッドなんて定義がどこにもないのに、
使えることになっている。自動生成されたcsファイルいじったらどう反映される
んかねえ。 だいたい、プログラムのエントリポイントはいったいどこにある
んだ??? いくらなんでも隠蔽しすぎなんじゃないのかね、wpfは。
0312デフォルトの名無しさん
2009/02/23(月) 13:03:25XAMLはC#のコードに変換しているわけではない
WPF自身が実行時に直接XAMLをパースして組み立ててる
window1.g.csはXAMLを読み込む処理を呼び出して
読み込まれた要素を対応するC#のフィールドに代入するためだけに生成される
0313デフォルトの名無しさん
2009/02/23(月) 13:11:51xaml使ったのとC#だけのもの、初期化処理は違うとしてもほぼ等価な動作すると考えていいの?
0314デフォルトの名無しさん
2009/02/23(月) 13:25:07RADで生成するからxamlだろうとC#だろうとかわらんというなら
わざわざC#を吐かせるメリットがない
言語別に対応しないといけないし動的に読み込むこともできないし
人間が読んだり修正したりするのも難しいし
RADが人間による修正に対応するのも難しい
0315デフォルトの名無しさん
2009/02/23(月) 19:33:27XAMLからコントロールの論理ツリーが生成される。〜.g.cs のC#コードはそれを参照するため。
それと、ASP.NETと違ってコントロールへはIDによるアクセスじゃなくなった。
> xamlはとにかく裏で何やってるのかさっぱりわからんのが気持ち悪い。
裏とか表ってw
これはW*Fの基本理念の一つで、「1つのプログラム言語やコードで何でもでき、そして何でもやる。」
という旧態のプログラマ的な思想から脱却して、高度にモデル化され、そして機能と役目の分担が
進んだ結果、こう変化したんだよ。
>>313
できるよ。 過去の資産であるWindowsFormライクなプログラミングスタイルも継承しているからね。
過去の資産=過去の頭脳w ・・・過去の技術者を一気に冷たく捨てないところがマイクロソフト。
0316デフォルトの名無しさん
2009/02/23(月) 19:38:21胡散臭いです
0317デフォルトの名無しさん
2009/02/23(月) 20:08:53されていない流儀で自動生成するブラックボックスなデザイナよりも圧倒的に優れていると思う。
Windows Formsは昔のVisual Basicのノリから抜け出せていなかった。
それに、コンテナの配置はxamlでやって、コントロールの動的生成をコードでやって、とか、
役割分担のさじ加減をプログラマがコントロールし易い(Windows Formsでもできるけど)WPF
の魅力だと思う。
xamlはxmlベースの構造的な言語だから、不明瞭なのは直接の子要素がChildrenプロパティなのか
Contentsプロパティなのか、くらいだけで、同等のコードをC#で書くのってとんでもなく楽。
0318デフォルトの名無しさん
2009/02/23(月) 20:28:482.0からずっと、UIとイベントの定義は一緒だろうが。
WindowsFormsとXAML、どっちも同じ。ASP.NETも。
XAMLはC#で全く同じものが書ける。これは最終的に一つのクラスになるから。
複数のソースで一つのクラスが定義できるのがpartial class。XAMLのように
言語が異なるのは既にASP.NETでやっている。
0319デフォルトの名無しさん
2009/02/23(月) 20:38:49いるとは思えないんだが・・・
0320デフォルトの名無しさん
2009/02/23(月) 20:53:59C#使ってるならそのメカニズムくらい分かってる筈だよ。
つーか、Formデザイナからだけでなく、XML構文によるUI要素の
名前空間、クラス、プロパティ、イベントの表現が、公式フォーマットの
XAMLドキュメントという定義で可能になったことが新しい。
0321デフォルトの名無しさん
2009/02/23(月) 21:02:35乗っかっている。だから、ブラックボックスで気持ち悪い、とはならない。
0322デフォルトの名無しさん
2009/02/23(月) 21:29:15Windows 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板的にスレ違いっぽくなってきたので
これで終わりにするわ。後の進展(あるか分からないけれど)に興味がある人がいたらニコ動の
マイリストでも時々見てくれ。
0323デフォルトの名無しさん
2009/02/23(月) 21:36:00> 読み込まれた要素を対応するC#のフィールドに代入するためだけに生成される
いっている意味がよくわからないんだけれど、
window1.g.csはイベントのシンクとかも処理しているように見えるんだが。
フィールドの代入だけなんて代物じゃないんじゃないの?
xaml全体がシンタックスシュガーかと思っていたよ。
そんなとこまで隠蔽して、
0324デフォルトの名無しさん
2009/02/23(月) 21:40:220325デフォルトの名無しさん
2009/02/23(月) 21:49:21・リソースのXAMLを読み込む(Application.LoadComponentに丸投げ)
・ロード後,CLRフィールドに要素を代入
・イベントハンドラのアタッチ
0326デフォルトの名無しさん
2009/02/23(月) 21:59:07期待される動作が一通りで、その通りの動作をするのならば、より低いレベルが隠蔽されていても
問題にはならない。必要に応じて高レベル、低レベルを使い分ければ良い。
ブラックボックスが気に食わないのは、ただ一通りの動作を期待できないからで、それは知識不足
のせいだと思うんだけど。
0327デフォルトの名無しさん
2009/02/23(月) 22:13:06それぞれのUI用クラスを生成してるだけだろ?
どこが隠蔽されてて気持ち悪いのかぜんぜんわからねーよ。
0328デフォルトの名無しさん
2009/02/23(月) 22:22:48とか勘違いしているのかなあ。
俺が気持ち悪く感じるのは、XAML記述上の直接の子要素がどのプロパティ(ChildrenとかContentとか)
に対応するのかXAMLを見ただけでは分からない事だけだ。まあ確かにこれだけは気持ち悪い。
0329デフォルトの名無しさん
2009/02/23(月) 23:14:26ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8924.txt
一番下のXAMLのWindowsタグをPageに変えて、utf-8でhoge.xamlで保存。
IEで開けばloose xamlでも動く。
0330デフォルトの名無しさん
2009/02/23(月) 23:42:06ARToolKitはC++でライブラリをラップして、
DLL作ってから参照してるのかいな?
0331デフォルトの名無しさん
2009/02/23(月) 23:57:40その部分は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スレに投稿しているわけなんだが。
0332デフォルトの名無しさん
2009/02/23(月) 23:58:250333デフォルトの名無しさん
2009/02/24(火) 00:00:05スライダーの移動に合わせてほぼリアルタイムに描画されるんですが、
この機能を自作 WPF プログラムに実装したい場合どうすればよいでしょうか?
0334デフォルトの名無しさん
2009/02/24(火) 00:07:08画像処理自体はスレ違い
0335デフォルトの名無しさん
2009/02/24(火) 00:10:590336デフォルトの名無しさん
2009/02/24(火) 00:17:390337デフォルトの名無しさん
2009/02/24(火) 00:19:370338デフォルトの名無しさん
2009/02/24(火) 00:22:300339デフォルトの名無しさん
2009/02/24(火) 00:22:59を、便利な物を作ってる人がいたんだ!。
ARには興味あったのでいじくってみる。
ソース読ませていただきます。
0340デフォルトの名無しさん
2009/02/24(火) 00:24:30http://www.red-gate.com/products/reflector/
0341デフォルトの名無しさん
2009/02/24(火) 00:27:05SliderのValueChangedイベント使うくらい
0342デフォルトの名無しさん
2009/02/24(火) 00:38:300343デフォルトの名無しさん
2009/02/24(火) 00:43:21http://blogs.wankuma.com/kazuki/archive/2009/01/12/166166.aspx
0344デフォルトの名無しさん
2009/02/24(火) 09:29:030345デフォルトの名無しさん
2009/02/24(火) 20:55:23ttp://pro.art55.jp/?eid=908012
ttp://d.hatena.ne.jp/Yamaki/20070706/1183688885
テキストの編集中、右クリックでTextBoxデフォルトのContextMenuを開くと
TextBoxがキーボードフォーカスを失い、編集モードを終えてしまうんだけどそういう風にはならない?
ContextMenuのアイテムも選択できない。
0346333
2009/02/24(火) 22:01:41>>343 そこを参考にして画像ビューワーを作ってて、
>>341 のイベントで、
>>334 の方法で自前で露出の調整をしたら、
イベントの処理に5秒もかかっちゃって、
がんばって最適化しても1秒を切ることができなくて、
ためしに、 Vista の Windows フォトビューワーいじってみたら
瞬時に変わるので、これは、GPU 使ってるとか、DirectX 使ってるとか、
なんか自分の知らない WPF テクニックがあるのかと思って質問しました。
0347デフォルトの名無しさん
2009/02/24(火) 22:10:35俺、Windows XP⇒Windows 7ベータだから、Windows フォトギャラリーないんだ。
0348デフォルトの名無しさん
2009/02/24(火) 22:17:070349デフォルトの名無しさん
2009/02/24(火) 22:46:22WPF自体の描画更新なんか画像処理に比べたら一瞬
0350デフォルトの名無しさん
2009/02/24(火) 22:47:510351デフォルトの名無しさん
2009/02/24(火) 22:48:310352デフォルトの名無しさん
2009/02/24(火) 22:52:26WiteableBitmapは十分速いよ
もともと>>351みたいな書き込みの方法しか用意されてない
0353デフォルトの名無しさん
2009/02/24(火) 23:03:590354333
2009/02/24(火) 23:05:09>>340 は俺へのレスだったのか。すまん。
reflector は知ってたけど、Windows フォトギャラリー って .net のプログラムだったんだ?
今日は出先なんで無理だが、家帰ったら試してみる。
>>349
そうなんだよ。だから、フォトギャラリーがどうやってるかわかればなぁ・・・と。
>>350 >>351 >>352
WritableBitmap で unsafe でポインタ使っても遅くて、
C++ で書き直して1秒切るところまでいったんだが、
まだ遅いので質問するにいたったわけです。
0356デフォルトの名無しさん
2009/02/24(火) 23:07:03いずれにしてもこれ以上はスレ違い
0357デフォルトの名無しさん
2009/02/24(火) 23:13:09WPFでも使えるようになったことだし
0358デフォルトの名無しさん
2009/02/24(火) 23:21:00もはやあれで半分反則だけどこんなのがある。反則なので速いと
いっていいのかわからんが
ttp://www.codeplex.com/wpffx
川西先生の紹介↓
ttp://blogs.msdn.com/hiroyuk/archive/2009/02/09/9407704.aspx
ちなみにちょっとビルドに注意。Codeplex にある別のやつがいる
0359デフォルトの名無しさん
2009/02/25(水) 04:54:37WPFの入れ子コントロールとXAMLが欲しい。
あと文字の強制アンチエイリアスはさせたくない。
こんな要望に対するソリューションて現状ある?
0360347,340
2009/02/25(水) 05:17:51え、WPFスレで、しかもWPFでどうやるのかって質問だったから、.NETプログラムなのかと勝手に
勘違いしてしまった。そうでないのなら、普通にシェーダ使ってるんじゃないの?
純粋なWPFアプリケーションだとしたら、>>358なんかで紹介されているWPFでのシェーダの使用
は最近の更新で可能になったものだから、Vista標準のプログラムとしてはないと思う。
結局、.NETプログラムじゃない、シェーダを使ってるか、画像処理を気合で頑張っている、つまり
スレ違いって所で落ち着きそうだ。
0361デフォルトの名無しさん
2009/02/25(水) 06:14:00XAMLの中で、例えばテキストボックスに
<TextBox RenderOptions.EdgeMode="Aliased" x:Name"textbox1" 〜 />
と記述した場合、カーソルバーは1ドット幅の縦棒でシャキーンと表示されるけど、テキスト文字だけは
常にアンチエイリアス処理されますね。これだけ我慢すれば、最良のソリューションじゃないでしょうか。
0362デフォルトの名無しさん
2009/02/25(水) 09:29:50Form上でそれ実現する奴作った。それ使ったシステム5月ぐらいにリリース予定。
0363デフォルトの名無しさん
2009/02/25(水) 09:32:20テストするからうpして
0364デフォルトの名無しさん
2009/02/25(水) 09:52:25ttp://www.rupan.net/uploader/download/1235523080.jpg
0365デフォルトの名無しさん
2009/02/25(水) 11:10:48ElementHost使えば、winformsにコントロール単位でWPFコントロール
持ち込めるだろ。例えば、ListBoxだけとか。
んで、起動時にSystemFontsの中から適当なの選んで設定すれば、
フォントもwinforms同様になる。
0366デフォルトの名無しさん
2009/02/25(水) 13:33:55InkCanvasのペンの色を変える方法を教えてください。
xamlとC#と両方の方法をお願いします。
0367デフォルトの名無しさん
2009/02/25(水) 13:40:27MSDN読めないならWPFなんか手を出さない方がいい
0368デフォルトの名無しさん
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はなにでしょう?
よろしくお願いします。
0369デフォルトの名無しさん
2009/02/25(水) 17:59:24> と書けばいいのですが、
の意味が心底分からんが
適当にCommandsクラスとか作ってコマンドごとにRoutedUICommandのstatic readonlyフィールドを用意
それをKeyBinding.Commandに設定
あとはCommandBindingでコマンドが呼び出すメソッドを設定
0370デフォルトの名無しさん
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){//メソッド}
添削頼む…。
0371デフォルトの名無しさん
2009/02/25(水) 18:28:17> public partial class Commands : Window {
System.Windows.Input.ApplicationCommandsみたいにstaticクラスでいいよ。
新しくcsファイル作ってそこにでも。
まあ別にCommandsクラスじゃなくてもいいけどな。肝心なのはRoutedUICommandのフィールドだから。
ApplicationCommandsみたいにICommandは一つにまとめるのが自然だと思っただけで。
つかまずApplicationCommands.CloseとかでKeyBindingとCommandBinding使ったの書いてみろよ。
MSDNやヘルプのこれらのクラスの解説にサンプルがいくらでもあるから。
0372デフォルトの名無しさん
2009/02/25(水) 18:42:14.NET とどう違うの?
0373デフォルトの名無しさん
2009/02/25(水) 19:08:57WPFはSystem.Windows.Formsに代わる新しいGUIフレームワーク
最大の特徴は,Win32ネイティブのコントロールを使用せずにウインドウの中身を
一枚の絵としてすべてのコントロールをDirect3Dで自前で描画してること
ゲームの画面にたくさんのキャラクターを描画するのと同じ仕組み
0374デフォルトの名無しさん
2009/02/25(水) 19:16:26xamlに
<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の一覧はどこにあるのでしょう?
0375デフォルトの名無しさん
2009/02/25(水) 20:11:33それと、<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メソッドを実装する。
多分こんな感じ。
0376375
2009/02/25(水) 20:21:42http://blogs.wankuma.com/kazuki/archive/2008/03/16/127942.aspx
の記事を読み直してまとめたもの。詳しくはリンク先の記事を、やる気があれば
連載になっているから最初から、読んで行って。
0377デフォルトの名無しさん
2009/02/25(水) 21:00:22Command="{x:Static foo:Window1.FooCommand}"
は
Command="foo:Window1.FooCommand"
とどちらでも問題ないみたい。だから必ずしもx:Staticのマークアップ拡張を使う必要はない。
0378デフォルトの名無しさん
2009/02/25(水) 21:44:38ありがとうございます
DirectX系で壁画するということはGPUと相性がよさそうですねVista Aeroなんかとも
0379デフォルトの名無しさん
2009/02/26(木) 08:10:200380デフォルトの名無しさん
2009/02/26(木) 08:20:150381デフォルトの名無しさん
2009/02/26(木) 09:15:54WPFで作ったアプリのUIを自動テストするのは、どんな感じ?
大昔つくったアプリは、コントロールにメッセージ送りつけてやったけど。
0382デフォルトの名無しさん
2009/02/26(木) 10:00:520383デフォルトの名無しさん
2009/02/26(木) 14:11:27ListBox.Items.Add("うんこ")見たいな物を3回ループしてやると選択がくるっとんねんけどな、コンテンツだと正常なんだわ。
ListBoxて文字でアイテム管理しとん?
解決方法どないやねん???
>>384
0384デフォルトの名無しさん
2009/02/26(木) 14:19:060385デフォルトの名無しさん
2009/02/26(木) 14:21:26おっちゃんも暇ちゃうねん、出来るだけはよう答えてくれへんか?
色々問題もあってやな、今火達磨状態やねんで?
誰かに伝えたいこの想い
0386デフォルトの名無しさん
2009/02/26(木) 16:53:09皆さん、UnitTestのテストレポートってどうしてる?
基本的に、初期値、幾つかの中間値、そして境界値とその内外だけを確認?
0387デフォルトの名無しさん
2009/02/26(木) 23:46:12ゆとりにもわかるように説明してください
0388デフォルトの名無しさん
2009/02/28(土) 01:04:38下記のようにファイルを読み込むとロックするのですが、
string imgFile = @"C:\tmp.jpg";
img.Source = new BitmapImage(new Uri(imgFile));
ロックをはずす方法を教えてください。
ちなみにFormの場合には、
pictureBox1.Image = Bitmap.FromFile(imgFile);
pictureBox1.Image.Dispose();
でロックをはずすことができます。
よろしくお願いします。
0389デフォルトの名無しさん
2009/02/28(土) 01:41:22MemoryStreamに読み込んでそこからBitmapを読み込むことはよくやる。
同じようにMemoryStreamに読み込ませてBitmapDecoderで読み込めばいいんじゃないかな?
0390デフォルトの名無しさん
2009/02/28(土) 02:07:24BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(imgFile);
bmp.CacheOption = BitmapCacheOption.OnLoad;
bmp.EndInit();
0391デフォルトの名無しさん
2009/02/28(土) 02:49:29早速ありがとうございます。
>>390
これで試してみました。
しかし、ウィンドウは開くものの、ファイルはなにも表示されなくなってしまいました。
0392デフォルトの名無しさん
2009/02/28(土) 12:30:28コントロールに読み込んだイメージセットしてないだろ
0393デフォルトの名無しさん
2009/02/28(土) 12:38:490394デフォルトの名無しさん
2009/02/28(土) 12:46:38bmp.UriSource = new Uri(imgFile);
だけではセットしたことにならないの?
セットの方法を教えてください。
0395393
2009/02/28(土) 12:57:36<Border BorderBrush="Black" BorderThickness="0 1 0 0">
0396デフォルトの名無しさん
2009/02/28(土) 13:27:07処理の内容ちゃんと理解しなきゃ
0397デフォルトの名無しさん
2009/02/28(土) 13:33:32>>388に書いてある
img.Source = new BitmapImage(new Uri(imgFile));
ってコードの、右辺の処理new BitmapImage(new Uri(imgFile))をファイルがロックされないように
書き直したのが>>390。出来上がったBitmapImageのインスタンスをimg.Sourceから参照させる
処理は書かなきゃ。
0398デフォルトの名無しさん
2009/03/01(日) 18:29:38(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;
0399デフォルトの名無しさん
2009/03/01(日) 18:30:14BitmapImage 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);
}
これでボタンを押すと、ウィンドウが消えるのですが、ファイルは残ったままです。
アドバイスお願いします。
0400デフォルトの名無しさん
2009/03/01(日) 20:07:14string 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);
> }
これのパスを間違えてるとかじゃね
0401デフォルトの名無しさん
2009/03/01(日) 20:14:16>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
0402デフォルトの名無しさん
2009/03/01(日) 20:18:44なんだよそれ?いい加減にしろよ。
http://msdn.microsoft.com/ja-jp/library/system.windows.media.imaging.cachedbitmap(VS.80).aspx
これ全部読むまで再質問禁止。
0403デフォルトの名無しさん
2009/03/01(日) 20:27:25ありがとうございます。
なんだかわからないのですが、一度終了して再起動したら動くようになりました。
いろいろありがとうございました。
0404デフォルトの名無しさん
2009/03/02(月) 16:49:22Blendで作ってもらったFrameのXAMLをVSで読み込ませると
「'Frame' ControlTemplate TargetType は、テンプレートの型 'PlaceHolderControl' と一致しません。」(エラー場所は無駄な事言ってるので省きました)
と、例外が発生します。
コントロールを作ってもらっても一緒です。
しかし、これらは実際バグっているわけでもなく、ビルドもコンパイルも正常に動きます。
どうもVSのデザイナだけがこけています。
何かいい回避方法(Frameに似たコントロール)などありませんか?
よろしくお願いします。
環境:Windows7 VS2008
0405デフォルトの名無しさん
2009/03/02(月) 19:17:27FrameのControlTemplateを作ってるの?それ何の意味があるの?
そんなことしないでユーザコントロールにFrameを張り付ければ一緒だと思うんだが
0406デフォルトの名無しさん
2009/03/02(月) 19:29:38「戻る」「進む」ができるようにしたいときに使うんだよわかってる?
コンテンツを飾り付けしたいだけならDecoratorの派生クラス(Borderなど)使う
もちろんFrameを飾り付けするのにもDecoratorが使えるし,普通はテンプレート使わずにそうする
0407デフォルトの名無しさん
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>
このような簡単なものでもエラーになってしまいます。
理由を教えてください
0408デフォルトの名無しさん
2009/03/02(月) 19:42:32衝突しているんじゃないかな?
xmlns宣言で名前空間への参照を追加して、名前空間込みで「Frame」コントロールや
そのx:Typeを指定したらどうだろう?
0409デフォルトの名無しさん
2009/03/02(月) 19:48:340410デフォルトの名無しさん
2009/03/02(月) 21:00:28ちょっと判らなかったです・・・
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
申し訳ないです。;;
0411デフォルトの名無しさん
2009/03/02(月) 21:08:56最低限テンプレートに含めないといけないコントロールが決められてるのが普通
それを示す属性がTemplatePart
逆に,そういう条件が必要ないならあまりテンプレートを使う意味がない
0412デフォルトの名無しさん
2009/03/02(月) 21:19:23ツール-オプション-テキストエディタ-xaml-その他-既定のビュー
で
「常にフルxamlビューでドキュメントを開く」
のチェックを外せば直るみたい。
でも、xaml直書きする場合、このチェックは入れておきたいよねえ。
なんか普通にバグっぽいぞ。
0413デフォルトの名無しさん
2009/03/02(月) 21:38:27>コントロールテンプレートは完全に自由に書いていいわけじゃない
てっきり何をしてもいい>>412
物だだと思っていました!
TemplatePartは詳しく調べる必要があるようです。
>>412
うまくいきませんでした・・・
どうしても「'Frame' ControlTemplate TargetType は、テンプレートの型 'PlaceHolderControl' と一致しません」がデザイナのみにエラーが出てきます。
コンパイル、ビルドも出来るので間違ってはいないと思いますが、VSのデザイナが使えないというのはキツイです・・・
0414デフォルトの名無しさん
2009/03/04(水) 04:37:13そこが萌えるんだけどw
0415デフォルトの名無しさん
2009/03/05(木) 16:28:410416デフォルトの名無しさん
2009/03/05(木) 16:40:000417デフォルトの名無しさん
2009/03/05(木) 17:02:12試すパターンが膨大で困るw
0418デフォルトの名無しさん
2009/03/05(木) 17:12:14すべてxamlのせいで敷居が高くなってるせいだと思う
WPFだけなら新しいコントロールライブラリってことで十分普及したと思うよ
Microsoftはxaml使うのをWPFが使われるようになってからに遅らせるべきだった
0419デフォルトの名無しさん
2009/03/05(木) 17:25:04http://ufcpp.net/study/dotnet/index.html
とか
http://uchukamen.com/WPF/Default.htm
くらいを見て、後はいろんな人のブログを見てバインディング周りの
定石をしれば、本当の話IntelliSenseで十分ヘルプになるようになる
と思う。
0420419
2009/03/05(木) 17:26:32俺はWPF+XAMLはWindows Formsや昔のWin32APIでウィンドウ
作ってた時代よりも初心者向けだと思うよ。
本がないのも外国語の物は専門性の高い物から入門書まで多いし、
日本の出版事情が大きいんじゃないかな。
0421デフォルトの名無しさん
2009/03/05(木) 18:07:43TextBlockで普通の改行入りテキストを
<TextBlock TextWrapping="Wrap">
あれ?<LineBreak />
声が<LineBreak />
遅れて<LineBreak />
聞こえるよ<LineBreak />
</TextBlock>
こうやって作った後Blendとかに再読み込みさせると「Inline」がいっぱい引っ付いてくるんだけど、この書き方は推奨されていないから?
それともBlendの屁理屈?
0422デフォルトの名無しさん
2009/03/05(木) 20:01:29Windows Forms > WPF/XAML
Windows Formsは
・XMLを編集しなくていい
・APIのデザインも直感的(使いたい機能が「そこ」にある)
0423デフォルトの名無しさん
2009/03/05(木) 21:31:12意味が同じだから
0424デフォルトの名無しさん
2009/03/05(木) 22:27:40WPFはWindowsFormsと同じようにAPIベースで作成できるよ。
名前が違うだけでやってることはほぼ同じ。
初心者ってのはおまえ自身のことだろ。
0425デフォルトの名無しさん
2009/03/05(木) 22:31:49答えてくれてありがとう!
何かTextBlockも機能的にはとてもいいけど、Labelの方が簡単でとっつき易いなー
0426デフォルトの名無しさん
2009/03/05(木) 22:43:40Labelは別のコントロールに文字通りラベルとアクセスキーを付けるためだけに使う
ということでおk?
0427デフォルトの名無しさん
2009/03/05(木) 22:45:20TextBlockは数行
くらいにしか深く考えたことないや。
0428デフォルトの名無しさん
2009/03/05(木) 23:16:170429デフォルトの名無しさん
2009/03/05(木) 23:37:44bindingが覚えづらい。xml的お作法としてはああなるのが正当なのかも
しれないけれど、直感に反する書き方だし、わかりづらいし、何とかしてほしい
リソースがらみもそう。
とにかくxamlで中カッコ {}が出てくる場面はうんざりする。なんなのこの変態言語
って感じで。
0430デフォルトの名無しさん
2009/03/06(金) 00:33:21それ、マークアップ拡張だから、使わないで普通に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が言うように支援がなくて書くのが大変だし、
実行時まで間違いが分からないし、実行時の例外の内容は分け分からないしで
嫌になるのも分かる。
0431デフォルトの名無しさん
2009/03/06(金) 00:36:17必ずしも悪い事でもない。そこでマークアップ拡張使う場合にお勧めなのが
次のアンチョコ:
http://go.nbdtech.com?94E138EA
0432デフォルトの名無しさん
2009/03/06(金) 01:39:57Formsはペタこれするのはわかりやすいけれど、それ以上ができない。
WPFはそういうところがエレガントにできるけど、バインディングとか正直わかりにくい。
0433デフォルトの名無しさん
2009/03/06(金) 08:13:24たしかにな
1.xaml=エレメントの画面表示
2.コード=データの操作
3.補助定義表=それらのバインディング等
みたいに分離してみたらどうなのか。3.を1.にくっつけているからゴチャゴチャになっている。
そういう定義ファイルに、>>430なら、
[ myViewport3D.Width <= myCanvas1.ActualWidth ]
とでも書いておけばそれ1行でOKにする。一目瞭然。初期化等も大方は
[ myWindow1.Background = Brushes.White ]
そこに記述でいいとすれば、xaml自体の方も(エレメントの単純な階層関係記述が基本になり)ごくすっきりする。
でこんなのは、システムがその表を解析して現状xamlに展開する、という形に出来る
(ものが多い、or出来るものだけをこういう初期定義可能にする)だろうから、拡張機能として比較的簡単に出来そうじゃないのか。
0434デフォルトの名無しさん
2009/03/06(金) 17:29:22複数のPage間でテキストデータをバインディングするとき、どうすればいいかわかりません。
名前空間などに定義する方法などが考えられるのですが、一番簡単で効率のいい方法はないですか?
0435デフォルトの名無しさん
2009/03/06(金) 17:57:210436>>434
2009/03/07(土) 15:56:56やっぱり名前空間を全てのWindowのザムルに定義している方法を取っているので、これが妥当だと思う
0437デフォルトの名無しさん
2009/03/08(日) 12:54:50Templateを弄るしかないんですか?
0438デフォルトの名無しさん
2009/03/09(月) 18:06:04LoadedやUnloadedイベントにそのオブジェクトのメソッドを登録したいのですが
コードを書かずにXAML上だけでできますか?
0439デフォルトの名無しさん
2009/03/10(火) 04:39:430440デフォルトの名無しさん
2009/03/10(火) 08:15:43専用スレあるよ。
Microsoft Silverlight 2.0 その3
http://pc11.2ch.net/test/read.cgi/tech/1227324813/l50
0441デフォルトの名無しさん
2009/03/10(火) 21:11:14ありがとうございます
0442デフォルトの名無しさん
2009/03/11(水) 10:41:36Blendにて「Hyperlink」編集不可
直タグ打ち可
0443デフォルトの名無しさん
2009/03/11(水) 11:07:300444デフォルトの名無しさん
2009/03/11(水) 11:24:06エヘッ♪
0445デフォルトの名無しさん
2009/03/11(水) 22:36:52記述方法が違うだけで使ってるのは同じ.NET frameworkだから
性能とかはかわらないんだよね?
0446デフォルトの名無しさん
2009/03/11(水) 23:07:150447デフォルトの名無しさん
2009/03/11(水) 23:08:12ロード後の動作は全く一緒
0448デフォルトの名無しさん
2009/03/11(水) 23:46:48htmlの描き方が苦手なおれはxamlじゃなくてまずC#でWPF勉強するわ
0449デフォルトの名無しさん
2009/03/12(木) 13:07:52できればアプリケーション内でローカルに追加/削除できて
他のアプリケーションには影響しないようにしたいのですが。
0450デフォルトの名無しさん
2009/03/12(木) 16:10:21自前のコードで読み込んでStreamSourceに設定するしかないと思う
でもそうするといちいち他の画像形式に変換しないといけないし
BitmapImageを使う意味もないので
BitmapSource.Createを使ってピクセルデータから直接作った方がいい
0451デフォルトの名無しさん
2009/03/12(木) 17:17:54設定できたりする?
0452デフォルトの名無しさん
2009/03/12(木) 17:30:330453デフォルトの名無しさん
2009/03/12(木) 18:30:36> 3.補助定義表=それらのバインディング等
これをデザイナのプロパティウィンドウあたりで簡単に設定できれば
xamlの中に取り込まれていても問題ないと思うんだが。
デザイナがひどすぎると思う。
0454デフォルトの名無しさん
2009/03/12(木) 18:42:18WinFormsはもっと汚い形でやってるんだから
0455デフォルトの名無しさん
2009/03/13(金) 16:04:08「存在しているXMLをリソースとして利用」のほうが正しい?
どうも作ってみても、EXEの中にリソースとして取り込まれて、XMLファイルの切り替えとかが出来ないw
RSSの仕組みでネットワークにあるものを指定してやると、切り替えとかをネットワーク越しに出来るけどローカルでは無理な感じ。
0456デフォルトの名無しさん
2009/03/13(金) 16:32:240457デフォルトの名無しさん
2009/03/14(土) 02:47:230458デフォルトの名無しさん
2009/03/14(土) 07:13:23改行しないで表示させたい場合どうしたら良いの?
0459デフォルトの名無しさん
2009/03/14(土) 14:17:38RichTextBoxの中にあるFlowDocumentだっけか、
あれにパネルとか突っ込んで見たんだけど、どうもスクロールバー自体がテキスト扱いになって操作できないし。
0460デフォルトの名無しさん
2009/03/14(土) 15:06:30http://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 に反映させるとか。
0462デフォルトの名無しさん
2009/03/15(日) 00:28:010463デフォルトの名無しさん
2009/03/15(日) 01:17:46Webサービス プログラミング総合スレッド
ttp://pc11.2ch.net/test/read.cgi/tech/1031149340/
0464デフォルトの名無しさん
2009/03/15(日) 01:38:18特に旧来のWindowsForms、これからのスタンダードなWPF、XBAP、Silverlight、そして携帯電話や汎用
ブラウザ向けのASP.NETなんかで相互に共用できるアプリケーションシステムの構築となると、
やっぱりWCFは欠かせないよね。
俺の場合、データ・レイヤはSQL Server、アプリケーション・レイヤは機能・役割ごとに複数個のWCFで構築。
プレゼンテーション・レイヤは、WinForm、WPF、XBAP、Silverlight、Javaでマルチクライアント環境を実現。
今はこの基本3層構成をWebサービスのマイブームと位置付けて色々と遊んでいる。
0465デフォルトの名無しさん
2009/03/15(日) 13:16:460466デフォルトの名無しさん
2009/03/15(日) 13:34:46XBAPはSilverlightへの発展的解消で完全に進化が止まっちゃったからね。
Silverlightは資料もチュートリアルも豊富。WPFとの2本立てで決まりだね。
そういえば、MIX'09でSilverlight 3の発表ですな。
ブラウザナビゲーションとの連携が目玉らしいけど、それよりTextBox上での
右クリック時にコピペ系のコンテキストメニューを出すようにして欲しいな。
0467デフォルトの名無しさん
2009/03/15(日) 13:46:59ついでにBlendも改善バージョンを発表してもらいたいですね。
0468デフォルトの名無しさん
2009/03/16(月) 02:29:080469デフォルトの名無しさん
2009/03/17(火) 00:29:030470デフォルトの名無しさん
2009/03/17(火) 18:36:56XpsDocument 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で標準搭載してくれれば・・・
0471デフォルトの名無しさん
2009/03/19(木) 03:50:47割と簡単にソースを推論できるから
0472デフォルトの名無しさん
2009/03/19(木) 04:25:53情報システム系の業務アプリには向いているよ。
オンライン販売やパッケージ販売のソフトウェア制作には向かないかも。
商用≠開発したソフトウェアの製品マスターのコピーを販売する
商用=商用の設備・ツールとしてソフトウェアを稼動させる
0473デフォルトの名無しさん
2009/03/19(木) 07:17:14客先で難読化されてた奴見たけど中身を見る手間相当あがると思うけど。
動作のわかる所からクラス機能を推論して意味通る名前を当てはめるにしても全体の把握は大変そう。
一部のロジックがわかれば良くてそこだけピンポイントで調べるのには向かなそうだが。
0474デフォルトの名無しさん
2009/03/19(木) 07:21:40難読化
0475デフォルトの名無しさん
2009/03/19(木) 11:06:32大抵ネイティブモジュールとのハイブリットだしな。
0476デフォルトの名無しさん
2009/03/19(木) 14:52:32あと自作したlibやdllを混ぜたらリコンパイルきかないだろう
さすがに機械コードを読んで作るやつはいるわけないし
0477デフォルトの名無しさん
2009/03/19(木) 15:34:170478デフォルトの名無しさん
2009/03/19(木) 15:56:36だいいち、そんなに解読されて困るコアのアルゴリズムがあるんだったら、それはサービス化
してSaaSで提供するとか考えるべき。
0479デフォルトの名無しさん
2009/03/19(木) 21:20:25このアプリのようにしたいのですが。
http://tmpgenc.pegasys-inc.com/ja/product/tme3_feature.html
0480デフォルトの名無しさん
2009/03/19(木) 21:29:450481デフォルトの名無しさん
2009/03/19(木) 21:40:39TabItem.Header に Image を指定する。
<TabControl>
<TabItem>
<TabItem.Header>
<Image Source="example.jpg" Stretch="None"/>
</TabItem.Header>
....
</TabItem>
....
</TabControl>
0482デフォルトの名無しさん
2009/03/20(金) 07:25:57ありがとうございます。
「ファイル example.jpg はプロジェクトの一部ではないか、'Build Action' プロパティが 'Resource' に設定されていません。」
となります。Resource設定はどのように行うのでしょうか。
0483デフォルトの名無しさん
2009/03/20(金) 11:30:12Visual Studio を使っているなら、
プロジェクトを右クリック->追加->既存の項目...->イメージ ファイル->example.jpg。
ビルドアションの変更する場合は、
プロジェクトに追加したファイルを右クリック->プロパティ->ビルド アクション。
詳しくは、ここを参照。
Windows Presentation Foundation アプリケーションのリソース、コンテンツ、およびデータ ファイル
http://msdn.microsoft.com/ja-jp/library/aa970494.aspx
0484デフォルトの名無しさん
2009/03/20(金) 20:48:140485デフォルトの名無しさん
2009/03/20(金) 21:12:32とりあえずここを読んでみては?
WPF 移行と相互運用性 - MSDN
http://msdn.microsoft.com/ja-jp/library/ms753178.aspx
0486デフォルトの名無しさん
2009/03/20(金) 21:18:12Form,Silverlight,WPFどれがどうつかわれてくのかいまいちさきがみえん。
Silverlight3.0とかかなりよさげで環境を問わないWeb,デスクトップ含めたUIフレームワークとしてかなり有望そうだが。
0487デフォルトの名無しさん
2009/03/20(金) 21:46:100488デフォルトの名無しさん
2009/03/20(金) 23:24:43グラフィック関係の新規APIはほとんどVista以降のみ対応だからなあ。
0489デフォルトの名無しさん
2009/03/21(土) 03:38:28<>入力するときにShiftがめんどくさいです><
0490デフォルトの名無しさん
2009/03/21(土) 08:04:07ありがとうございます。できました。
0491デフォルトの名無しさん
2009/03/21(土) 09:30:52初心者が取っ付くには敷居が高すぎる。
ウインドウズフォームとちがって単純に貼り付けて
プロパティを操作するだけではだめだ。
インテリセンスも効かないXAMLファイルを操作しなくては
ならないし。
0492デフォルトの名無しさん
2009/03/21(土) 12:28:120493デフォルトの名無しさん
2009/03/21(土) 14:00:000494デフォルトの名無しさん
2009/03/21(土) 14:23:110495デフォルトの名無しさん
2009/03/21(土) 14:40:02俺はC#だけで書いてる
0496デフォルトの名無しさん
2009/03/21(土) 15:06:200497デフォルトの名無しさん
2009/03/21(土) 15:33:440498デフォルトの名無しさん
2009/03/21(土) 15:37:540499デフォルトの名無しさん
2009/03/21(土) 15:59:550500デフォルトの名無しさん
2009/03/21(土) 16:01:150502デフォルトの名無しさん
2009/03/21(土) 21:17:120503デフォルトの名無しさん
2009/03/21(土) 23:55:26アニメーションさせなきゃならない部分があっても気軽に書ける。
0504デフォルトの名無しさん
2009/03/22(日) 00:06:30その点、WPFはXAMLを少し書き換えるだけなので楽だ
0505デフォルトの名無しさん
2009/03/22(日) 00:09:130506デフォルトの名無しさん
2009/03/22(日) 00:59:040507デフォルトの名無しさん
2009/03/22(日) 01:02:31これに関してはWinFormとは段違いでいいと思う
0508デフォルトの名無しさん
2009/03/22(日) 01:12:500509デフォルトの名無しさん
2009/03/22(日) 01:26:51それぞれのいい所取りできれば最高
0510デフォルトの名無しさん
2009/03/22(日) 01:45:40そのアプローチには無理があるだろう
XAML→C#は可能だろうけど、
C#→XAMLはC#のコードがXAMLに埋め込まれる事になりそう
0511デフォルトの名無しさん
2009/03/22(日) 02:10:37これに関してはマイクロソフト様より「技術的には可能だが非推奨」という
実務ガイドラインの見解を戴いております。
0512デフォルトの名無しさん
2009/03/22(日) 11:54:500513デフォルトの名無しさん
2009/03/23(月) 15:22:18DataGrid, 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
↑のスクロールで列の表示が崩れるバグもしっかり修正されてたよ。
0514デフォルトの名無しさん
2009/03/24(火) 20:22:05この辺もVS2010で改善されるのかなあ……
0515デフォルトの名無しさん
2009/03/24(火) 20:28:48{Binding }にもインテリセンス効くようになるらしいよ
エディタも十分高機能化するそうだけど
0516デフォルトの名無しさん
2009/03/25(水) 03:46:020517デフォルトの名無しさん
2009/03/25(水) 11:40:19>{Binding }にもインテリセンス効くようになるらしいよ
これはかなり嬉しい。
そういや、WPF Toolkitも標準で入るとか聞いたが…。
0518デフォルトの名無しさん
2009/03/25(水) 19:05:200519デフォルトの名無しさん
2009/03/25(水) 20:42:17P/InvokeかWindowStyle.None使えってAnderson神父は言うけど面倒臭いよ面倒臭いよ
0520デフォルトの名無しさん
2009/03/26(木) 09:14:00・XMLは知ってる。
・Windows Formは未経験。
この条件でいきなりWPFの勉強を
始めることは可能?
0521デフォルトの名無しさん
2009/03/26(木) 11:42:450522デフォルトの名無しさん
2009/03/26(木) 12:57:30アリガト
0523デフォルトの名無しさん
2009/03/26(木) 17:27:22<r:RibbonWindow x:Class="Window1"
</r:RibbonWindow>
リボンUIのWindowはこんな感じで実装されてるな
0524デフォルトの名無しさん
2009/03/29(日) 09:19:05複数のプロパティを連続して変更する際に、変更するごとに再描画されるのを
回避したいんです。
0525デフォルトの名無しさん
2009/03/29(日) 12:28:310526デフォルトの名無しさん
2009/03/29(日) 19:13:400527デフォルトの名無しさん
2009/03/30(月) 08:47:260528デフォルトの名無しさん
2009/03/30(月) 08:49:27ないんじゃないかな
作ったFixedDocument表示すればそれがPreviewになるし
0529デフォルトの名無しさん
2009/03/30(月) 18:41:53WinFormと比べてデザイナがまだまだ発展途上ですね。
Web上に日本語の情報も少ないし、どうしようか。
みんなどんな開発環境でWPF遊んでる?
0530デフォルトの名無しさん
2009/03/30(月) 18:45:060531デフォルトの名無しさん
2009/03/30(月) 20:07:450532デフォルトの名無しさん
2009/03/30(月) 21:30:47それは夏では
夏がくーれば思いだすー、
0533デフォルトの名無しさん
2009/03/30(月) 21:42:400534デフォルトの名無しさん
2009/03/30(月) 22:49:410535デフォルトの名無しさん
2009/03/31(火) 01:59:370536デフォルトの名無しさん
2009/03/31(火) 02:40:36まあ、英語でも情報少ないんだけどなw
0537デフォルトの名無しさん
2009/03/31(火) 08:33:44答えはもちろんNO!
0538デフォルトの名無しさん
2009/03/31(火) 09:25:32トドメを刺されるような気もする。まうその方向なら今やっといて損はない気はするけどね。
0539デフォルトの名無しさん
2009/03/31(火) 09:36:28結局ローカルにインストールベースになると思うんだが
そうするとそれってただのWPFじゃん
0540デフォルトの名無しさん
2009/03/31(火) 13:33:39winformsの探し方がマズイかもしれないからどこまで正しいか分からんが・・
http://www.indeed.com/jobtrends?q=sql+(win+forms+or+winforms)%2C+sql+wpf&l=
0541デフォルトの名無しさん
2009/03/31(火) 18:04:09世のスキル的にもWebはPHP、Java、ASP.NETだし。
今時点で情報の少なさが普及しないってことを物語ってる。
とはいえ、デスクトップ分野ではWindowsFormはWPFに間違いなく移行する。
WPF学ぶなら情報の出そろった3年後が良いよ。
0542デフォルトの名無しさん
2009/03/31(火) 18:46:15WPFはPHP・Java・ASP.NETの代替になるような物じゃないのだが・・・。
Silverlightの話としても、比べるべきはFlex, JavaFx (, Flash, Java Applet)じゃないか?
0543デフォルトの名無しさん
2009/03/31(火) 19:22:150544デフォルトの名無しさん
2009/03/31(火) 19:27:060545デフォルトの名無しさん
2009/03/31(火) 19:45:340546デフォルトの名無しさん
2009/03/31(火) 19:56:180547デフォルトの名無しさん
2009/03/31(火) 21:14:19十分広まった後でxamlもちだせばOK
0548デフォルトの名無しさん
2009/03/31(火) 21:21:290549デフォルトの名無しさん
2009/03/31(火) 21:35:38馬鹿
0550デフォルトの名無しさん
2009/03/31(火) 21:39:510551デフォルトの名無しさん
2009/03/31(火) 21:56:200552デフォルトの名無しさん
2009/03/31(火) 22:12:000553デフォルトの名無しさん
2009/03/31(火) 22:14:540554デフォルトの名無しさん
2009/03/31(火) 22:15:090555デフォルトの名無しさん
2009/03/31(火) 22:37:060556デフォルトの名無しさん
2009/03/31(火) 23:04:070557デフォルトの名無しさん
2009/04/01(水) 03:59:34Image 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;
を入れて(内容はttp://msdn.microsoft.com/ja-jp/library/ms747027.aspxのものです)
実行してみたのですが、真っ白なウィンドウが出るだけで画像が表示されません。
どこがいけないのかわかりません。どう書けばいいか教えてください。
0558557
2009/04/01(水) 07:04:31最後にthis.Content = myImage;を追加するだけだったとは…。
0559デフォルトの名無しさん
2009/04/01(水) 08:40:06please
0560デフォルトの名無しさん
2009/04/01(水) 19:29:06Windowsの仕組みも知らずにプログラミングして何が楽しいことか。
ま、今に始まったことじゃないけどね。VBとかDelphiもそうだけど。
VC++でWindowsAPI駆使した方が間違いなく素晴らしいアプリ作れる。
もっとも、WindowsAPIは把握するまでが大変だけど。
.NET使った方が楽なところは、マネージコード使って、
それ以外はアンマネージで。使い分ければスタンドアロンWPFいらないぜ!
とここまで書いてて気になったが、VistaでWinFX(.NET)が見送られたけど、
いつの日か、WindowsAPIは、.NETで公開されるように置き換わるのかなぁ。
WPFの目指すところがイマイチわからない。
0561デフォルトの名無しさん
2009/04/01(水) 19:40:170562デフォルトの名無しさん
2009/04/01(水) 19:42:020563デフォルトの名無しさん
2009/04/01(水) 19:48:030564デフォルトの名無しさん
2009/04/01(水) 21:09:48OnPreviewMouseLeftButtonDown をオーバーライドしました。
Canvas の Children に設定したコントロールをクリックしたときは
イベントが発生したんですが、新しく作成したコントロール自身を
クリックしたときはイベントが発生しません。
MSDN で UIElement..::.OnPreviewMouseLeftButtonDown メソッドを見ると
「派生クラスの静的コンストラクタ内で、Mouse..::.PreviewMouseDown の
代替クラス ハンドラを登録します。 OnPreviewMouseLeftButtonDown
オーバーライドして UIElement のマウス処理動作を変更することはできません。」
とあるんですが、関係あるんでしょうか?
OnPreviewMouseLeftButtonDown を OnMouseLeftButtonDown に
変えても同じでした。
自分自身をクリックしてもイベントが発生するようにするには
どうしたらよいのでしょうか?
0565デフォルトの名無しさん
2009/04/01(水) 21:21:09まず>>560の話を片付けて質問。な?
空気空気。
0566デフォルトの名無しさん
2009/04/01(水) 21:36:48Windowsの仕組みを知る楽しみ ≠ プログラミングの楽しみ
それにプログラム完成までの最短・最良の道を選択するのは
世間では常識で普通のことだよ。
0567デフォルトの名無しさん
2009/04/01(水) 22:34:02希望する内容を言ってくれた方が紹介しやすいが、
Pro WPF in C# 2008
Pro WPF with VB 2008
なんてどうだろう。
一通り最初からゆっくり読んで実験していけば、
エッセンスは頭に入ると思う。
英語も平易て読みやすいし、情報量の割には価格も安い。
ただし、ページ数がハンパないが
(C# 版しか知らないが、目次を見る限りは VB 版も同内容だと思う)
0568デフォルトの名無しさん
2009/04/01(水) 22:40:28Panel は子を入れて使うのが前提だから Background が設定されていないとクリックイベントが呼ばれないみたいだね。
<l:MyCanvas Background="Transparent"/> としても良いから Background を設定してみたら?
0569564
2009/04/01(水) 22:52:57ありがとうございます。
助かりました。
Background を設定しなければならないなんて考えもしませんでした。
ところで、Background を設定しないとイベントが発生しないと
どういう方法で調べたのですが?
よろしければ後学のため教えていただきたいのですが。
0570デフォルトの名無しさん
2009/04/01(水) 23:07:33これですね。
ttp://www.amazon.co.jp/Pro-WPF-2008-Presentation-Professionals/dp/1590599551/ref=sr_1_1?ie=UTF8&s=english-books&qid=1238594700&sr=1-1
ついでにSilverlight 2.0のこれ↓ も欲しいんだが
ttp://www.amazon.co.jp/Pro-Silverlight-C-2008-Windows-Net/dp/1590599497/ref=sr_1_1?ie=UTF8&s=english-books&qid=1238594363&sr=1-1
お金がない・・・
0571デフォルトの名無しさん
2009/04/01(水) 23:50:03レスどうも。
確かにそれ1000ページ超えてるんだよね。
600ページくらいだったら即決なんだけど、
検討してみる。
0572デフォルトの名無しさん
2009/04/01(水) 23:53:24Proシリーズか。
Linqが良かったから、Silverlight2も気になってる
0573568
2009/04/02(木) 00:03:56今回はテストコードを書いて試しているときに、たまたま気付いただけ。参考にならんでごめん。
今調べ直したら、ちゃんと基底クラスの方で書かれていたよ。
http://msdn.microsoft.com/ja-jp/library/system.windows.controls.panel.aspx
> Background が定義されていない場合、Panel 要素はマウス イベントやスタイラス ベントを受け取りません。
マウス イベントまたはスタイラス イベントを処理する必要があるが Panel の背景は必要ない場合は、Transparent を使用します。
0574デフォルトの名無しさん
2009/04/02(木) 00:25:50最初のウィンドウが表示できなくて困っております。
手順は以下の通りです。
・新しいプロジェクト画面でWFPアプリケーションを選択
・ビルド
・実行
多分この時点でウィンドウが表示されると思うのですが、何も立ち
上がらずに実行を終了?してデバッグ実行モードを抜けてしまいます。
そこで、Window1.xaml.csのコンストラクタにブレイクを仕掛けてみたのですが、
どうやらインスタンス化されていないらしく停止しませんでした。
プロジェクトのスタートアップオブジェクトの設定を確かめ、
自動生成されるApp.g.cs内のMainメソッド内にブレイクを
仕掛けてみたのですが、こちらでも停止しませんでした。
どうやら根本原因はMain()が呼ばれていない事のようなのですが、
どのように解決すればよいかわかりません。
もしよろしければ解決のためのヒントをいただけませんでしょうか・・・。
0575デフォルトの名無しさん
2009/04/02(木) 01:27:09環境を書かないと
0576574
2009/04/02(木) 01:34:49すっかり抜けていました、申し訳ありません。
OSは XP の SP3を適用済みで、VS は
Visual Studio 2008 Express Editionです。
0577デフォルトの名無しさん
2009/04/02(木) 01:46:19プロジェクトフォルダの bin と obj を削除して再ビルドしてもダメなら
Visual Studio を再インストールしてみたらどうだろう
0579デフォルトの名無しさん
2009/04/02(木) 02:12:400580574
2009/04/02(木) 02:16:31「対象のフレームワーク」の項目は3.5になっております。
0581デフォルトの名無しさん
2009/04/02(木) 02:39:03Windows Forms Applicationなら問題なくビルドして実行できるのかな?
0582574
2009/04/02(木) 03:14:19確認しましたらWindows Forms Applicationでも同じ症状がでていました。
これからVSを再インストールして試してみます。
0583デフォルトの名無しさん
2009/04/02(木) 13:27:19何、それ?
まったく分からない。
0584デフォルトの名無しさん
2009/04/02(木) 13:48:02FlexとかAirとかじゃね?
まあ開発環境としてはMSより程度が低いよね。
0585デフォルトの名無しさん
2009/04/02(木) 14:07:52それ、AppleではなくてAdobeじゃん。
>まあ開発環境としてはMSより程度が低いよね。
はぁ?
というか、お前自身の程度が低いだけだろ。
0586デフォルトの名無しさん
2009/04/02(木) 14:23:000587デフォルトの名無しさん
2009/04/02(木) 15:23:160588デフォルトの名無しさん
2009/04/02(木) 15:49:34Adobeの開発環境よりMSのVSシリーズが劣るところを詳しく。
まあ程度が低い君に比較する事なんて無理だよね。
0589デフォルトの名無しさん
2009/04/02(木) 16:29:420590デフォルトの名無しさん
2009/04/02(木) 16:33:350591デフォルトの名無しさん
2009/04/02(木) 16:41:160592デフォルトの名無しさん
2009/04/02(木) 16:46:550593デフォルトの名無しさん
2009/04/02(木) 16:48:510594デフォルトの名無しさん
2009/04/02(木) 16:50:580595デフォルトの名無しさん
2009/04/02(木) 16:55:310596デフォルトの名無しさん
2009/04/02(木) 16:57:27だろ。
クソワロタ
0597デフォルトの名無しさん
2009/04/02(木) 17:06:00まあ程度が低い君に比較する事なんて無理だよね。
\___________/
___ _
/ ____ヽ /  ̄  ̄ \
| | /, −、, -、l /、 ヽ きみ頭だいじょうぶ?
| _| -|○ | ○|| |・ |―-、 |
, ―-、 (6 _ー っ-´、} q -´ 二 ヽ |
| -⊂) \ ヽ_  ̄ ̄ノノ ノ_ ー | |
| ̄ ̄|/ (_ ∪ ̄ / 、 \ \. ̄` | /
ヽ ` ,.|  ̄ | | O===== |
`− ´ | | _| / |
0598デフォルトの名無しさん
2009/04/02(木) 17:49:13工数増加たまらんね
0599デフォルトの名無しさん
2009/04/02(木) 22:08:14HTMLはぽとぺたですむからこそ、表現系がDOMだろうがHTMLだろうが
どうでもいいわけで。
手でがりがり書かなきゃいけないならどっちでも一緒。HTML内に全部
書かなきゃいけないのはむしろ地獄。ajaxなんて地獄の生産性の悪さ
ってこった。
0600デフォルトの名無しさん
2009/04/02(木) 22:23:200602デフォルトの名無しさん
2009/04/03(金) 23:21:580603デフォルトの名無しさん
2009/04/03(金) 23:33:29全世界のウンコエンジニアのウンコ記事ばかりだ
お前の意味不明な忘備録を全世界に公開するな
公開するならせめて意味のわかるものにしろ、この糞どもが
ふぅ、すっきりした
ほんと、こんな情報ばっかりなんだよなw
俺のウンコを拭くチラシの裏終了
0604デフォルトの名無しさん
2009/04/03(金) 23:37:51コードビハインドで使おうと思います。
> StaticResourceExtension ex = new StaticResourceExtension();
> ex.ResourceKey = "HatchBrush";
> Brush brush =(Brush)ex.ProvideValue( XXX );
↑のようなコードで使えそうだってことはググった結果わかったのですが、
XXX になにを入れれば良いのでしょうか?
0605デフォルトの名無しさん
2009/04/04(土) 00:09:28http://msdn.microsoft.com/ja-jp/library/system.windows.staticresourceextension.providevalue.aspx
で、その引数のインターフェイスが
http://msdn.microsoft.com/ja-jp/library/system.iserviceprovider.aspx
そのインターフェイスの唯一のメンバーがGetService メソッド
サンプルコード見てるならググる前にライブラリ調べろよ
お前みたいなウンコがいらんblog記事書くから
こういう分野でのgoogle検索が面倒になるんだよ・・・
もう終電はないし仕事場で俺一人、飲みながら2ch
暴言も反省はしてない。北朝鮮のミサイルが待ち遠しい。
0606デフォルトの名無しさん
2009/04/04(土) 00:17:570607デフォルトの名無しさん
2009/04/04(土) 00:35:45俺一人ってどういうことだよ、この職場wwww
なんかもう、OOPについていけないSEがその辺にごろごろいる
コーディング?VBなら一通りできますよ?みたいな。もう死ねよ
0608604
2009/04/04(土) 00:49:05IServiceProvider の使い方がわからないわけでなく、
UserControl を継承したクラスのなかで、どうやって
IServiceProvider を得るのかがわからないんです。
0609デフォルトの名無しさん
2009/04/04(土) 01:18:15お前みたいなのでも雇ってるんだから
ずいぶん寛大な会社だと思うんだが。
0610デフォルトの名無しさん
2009/04/04(土) 01:24:40多態性(polymorphism)というOOPの概念を知ってるか?
というか、インターフェイスの使い方がよくわかってないんだろう・・・
俺の職場にゴロゴロいるやつらと同じだwww
C++では多重継承は変態コーディングで害悪だ、みたいな空気があったけど
C#では標準ライブラリからして、インターフェイスを使った多重継承が常識になってるんだよ
0611デフォルトの名無しさん
2009/04/04(土) 01:43:26間違ってたら、ごめんね。単純に XAML で定義した StaticResource を使いたいってだけなら、
FindResource メソッドが UserControl の基底クラスで定義されているので、それを使えば良いよ。
http://msdn.microsoft.com/ja-jp/library/system.windows.frameworkcontentelement.findresource.aspx
> Brush brush = (Brush)FindResource( "Key" );
StaticResourceExtension は XAML 拡張マークアップ( Background={StaticResource ...} みたいな書き方 ) を
定義しているだけのクラスなので、通常、コードから使う必要はないです。
0612デフォルトの名無しさん
2009/04/04(土) 07:10:55アホが使うとな。
0613デフォルトの名無しさん
2009/04/04(土) 07:48:510614デフォルトの名無しさん
2009/04/04(土) 08:49:24文句言うだけで回答出来ねぇw ワロス
0615デフォルトの名無しさん
2009/04/04(土) 17:29:46インターフェースと多重継承ごっちゃにすんなよ。
区別がついてない時点でおまえもその職場の奴らと同類だ。
0617デフォルトの名無しさん
2009/04/06(月) 07:50:59>>610
結局手前が一番何もわかっていない糞馬鹿だということの典型モデルですな
要素に対するシステム特有の扱いへの質問にすぎんものに
>多態性(polymorphism)というOOPの概念を知ってるか?
もう痛さ百乗
0618デフォルトの名無しさん
2009/04/06(月) 12:30:35最後2行はネタであると願っております。
0619デフォルトの名無しさん
2009/04/06(月) 12:48:51結局何が答えなのか・・・
0620デフォルトの名無しさん
2009/04/06(月) 13:06:06の最後に行は間違いなくネタ
0621デフォルトの名無しさん
2009/04/06(月) 13:10:23プログラミングの基本は抽象化です。別にOOPに限った話ではありません。
インタフェースは使い方はそれほど重要ではなく(簡単なので)、インタフェース
という実現方法が問題解決の副次的要素です。
多重継承問題は、抽象化プログラミングと深く関わっています。
このまま解説を続けても良いですけど、WPFスレなので
スレ汚しになるので控えさせてもらいます。
0622デフォルトの名無しさん
2009/04/06(月) 13:21:160623デフォルトの名無しさん
2009/04/06(月) 13:28:210624デフォルトの名無しさん
2009/04/07(火) 01:30:02お店にはいるとお客さん、歩いていると通行人。でもインスタンス(おとうさん)は同じ。
0625デフォルトの名無しさん
2009/04/07(火) 04:04:10いまごろ泣いているんだろうなぁ
0626デフォルトの名無しさん
2009/04/07(火) 08:56:07うちの会社でやらないか?
0627デフォルトの名無しさん
2009/04/07(火) 12:06:130628デフォルトの名無しさん
2009/04/08(水) 01:45:100629デフォルトの名無しさん
2009/04/08(水) 02:51:590630デフォルトの名無しさん
2009/04/08(水) 08:20:58Atomじゃなくても重いから
0631デフォルトの名無しさん
2009/04/08(水) 16:23:00VSのスタートアップページ(RSSとかプロジェクトとかが表示されてるタブ)を閉じておくと
なぜか復帰が早くなることがあるよ
むしろ、なぜかスタートアップページを表示しておくととてつもなく時間がかかる
なんでこんな無駄なページが毎回起動時に表示されるのかが分からん
0632デフォルトの名無しさん
2009/04/08(水) 16:35:25どうやって楽しんでる?満足に理解できないでしょ?
0633630
2009/04/08(水) 17:07:09トンクス、スタートアップページは閉じてみます。
>>632
そうだね、まだWPF/XAMLの国内本を3冊と、
MSDNしか読んでないしな〜。
WindowsFormの代替品としてテストしてるけど、
ユーザーコントロールを簡単に部品として作成できるの嬉しい。
0634デフォルトの名無しさん
2009/04/08(水) 17:43:21俺はWPF関連の情報はネットを中心にかき集めてるわ
評価版リボンUIつけられて、アプリボタンのStyle書き換えもうまくいったけど、評価版だからやっぱり不安定だわ。
2010が待ち遠しい
0636デフォルトの名無しさん
2009/04/08(水) 20:21:48VS2008はWPFの開発環境がまだまだ発展途上だもん。
2010になると強化されるらしいが・・・。
今別なこともやってて、VS2008買おうか迷ってるんだが、
来年VS2010が控えてるからなー・・・。今2008買っても損しそう。
2010買ったら数年使い倒せると信じたい。
0637デフォルトの名無しさん
2009/04/08(水) 22:14:06あと2年ぐらいたてば主流になれるのかな
0638デフォルトの名無しさん
2009/04/09(木) 01:20:590639デフォルトの名無しさん
2009/04/09(木) 01:55:23もはやHTML+css+Javascriptなんてやりたくなくなるな。
0640デフォルトの名無しさん
2009/04/09(木) 02:03:100641デフォルトの名無しさん
2009/04/09(木) 09:10:40つサンブスクリプション1年分
0642デフォルトの名無しさん
2009/04/09(木) 13:44:59そういう買い方(レンタル)もあるのですね。
マイクロソフトのサイトを確認しても価格が見つかりません。
1年分でいいのでサブスクリプションしたいなぁ。
0643デフォルトの名無しさん
2009/04/09(木) 14:01:28ttp://msdn.microsoft.com/ja-jp/subscriptions/dd197624.aspx
0644デフォルトの名無しさん
2009/04/09(木) 14:07:420645デフォルトの名無しさん
2009/04/09(木) 14:23:01初心者って言うか、最初に通しで読んで、設計思想とか、
何でそうなってんの?って部分について「へー」と納得する為の本。
後でリファレンスマニュアルとして読み返すような部分はない。
0646デフォルトの名無しさん
2009/04/09(木) 14:58:19レスthxです。
Pro WPF買って読んでるんですが、ちょっと難しいなと感じています。
WPFに馴染んでおくという意味で、エッセンシャルWPFを
先に読んでおくとProも理解しやすくなりますかね?
0647デフォルトの名無しさん
2009/04/09(木) 15:52:24APIだけでやりたいなら赤坂本があるけど、
WPFの威力が半減以下にw
エッセンシャルは黒XAML本の後に読んだ方が理解が早いかな、
内容自体はかなり重複してるけどね。
0648デフォルトの名無しさん
2009/04/09(木) 15:54:42WPFの本、店頭に並んでないんだから
0649デフォルトの名無しさん
2009/04/09(木) 16:03:140650デフォルトの名無しさん
2009/04/09(木) 16:07:210651デフォルトの名無しさん
2009/04/09(木) 16:10:390652デフォルトの名無しさん
2009/04/09(木) 16:19:27thx
本屋で黒XAMLを見てみます。
0653デフォルトの名無しさん
2009/04/09(木) 23:41:06かぶったなら後輩にあげろ
0654デフォルトの名無しさん
2009/04/10(金) 03:02:22赤坂本はやめとけw
0655デフォルトの名無しさん
2009/04/10(金) 14:26:470656デフォルトの名無しさん
2009/04/11(土) 21:29:32あと Dr.WPF とか。本はエッセンシャル WPF が良かった。
XAML を書いてると、オーサリングソフトなしで HTML を書いてる気分になるが、
慣れれば GUI ポトペタより手書きの方が楽だね。
VS 2010 では、XAML 中の Binding などにも、インテリセンスが効くようになるそうだから、
ますます手書きが良くなるな。
0657デフォルトの名無しさん
2009/04/12(日) 00:03:310658デフォルトの名無しさん
2009/04/12(日) 00:09:21みたいな気がする。VS 持ってるなら高くないし。
0659デフォルトの名無しさん
2009/04/12(日) 00:51:250660デフォルトの名無しさん
2009/04/12(日) 00:56:20インテリセンスの実装ができなくて挫折した。
(その前に入力したコードに色つけんのもね。実装してみたけどさすがにもたつきすぎで、バグりすぎで)
0661デフォルトの名無しさん
2009/04/12(日) 16:09:590662デフォルトの名無しさん
2009/04/12(日) 16:34:51いきなり詳細を見るのは無謀かな。
0663デフォルトの名無しさん
2009/04/12(日) 21:56:26enum Level { Low, High }; を作成し、Level という名前の
DependencyProperty を作成しました。
で、Level に応じて Rectangle の色を変えようと思い、
<Rectangle>
<Rectangle.Style>
<Style TargetType="{x:Type Rectangle}">
<Style.Triggers>
<Trigger Property="local:Usercontrol1.Level" Value="High">
<Setter Property="Rectangle.Stroke" Value="Red" />
</Trigger>
<Trigger Property="local:Usercontrol1.Level" Value="Low">
<Setter Property="Rectangle.Stroke" Value="Blue" />
</Trigger>
</Style.Triggers>
</Style>
</Rectangle.Style>
</Rectangle>
としたところ、コードビハインド内で、Level を変更しても Rectangle には
反映されませんでした。
どこが問題なんでしょうか?
0664デフォルトの名無しさん
2009/04/12(日) 22:26:07DataTriggerでElementNameとかRelativeSourceとか使ってUserControl1のプロパティを参照するバインディングを使う
Trigger.Propertyは基本的に自分自身のプロパティが対象だよ
0665デフォルトの名無しさん
2009/04/13(月) 02:07:34現在GridでRowを12、Columnを2で区切り、
それぞれ下記のように使用しております。
<Canvas Grid.Row="0" Grid.Column="0" Grid.RowSpan="12"/> <Canvas Grid.Row="12" Grid.Column="0" Grid.RowSpan="3"/>
<Canvas Grid.Row="0" Grid.Column="1" Grid.RowSpan="7"/>
<Canvas Grid.Row="7" Grid.Column="1"/>
<Canvas Grid.Row="8" Grid.Column="1"/>
見かけはVSの配置と似たような形になります。
そこでそれぞれのペインの幅や高さを調整したい為に、
GridSplitterを使用して境界を作成しました。
<GridSplitter Margin="1" Height="5" Grid.Row="0" Grid.Column="0" Grid.RowSpan="12" VerticalAlignment="Bottom" HorizontalAlignment="Stretch"/>
<GridSplitter Margin="1" Width="5" Grid.Row="0" Grid.Column="0" Grid.RowSpan="15" VerticalAlignment="Stretch" HorizontalAlignment="Right"/>
このGridSplitterのうち、最初に作成した方がドラッグしても
設定が正しくないらしくまったく移動しません・・・。
よくない箇所などございましたらご指摘くださいませ。
0666デフォルトの名無しさん
2009/04/13(月) 07:45:48いずれ慣れる。しかし概念が難しいもんはいずれ廃れる。
wpf/xamlはどうも後者のような気がするんだがなあ。
0667デフォルトの名無しさん
2009/04/13(月) 13:23:24プログラミングはじめたばかりなこともあってか、内容読んでてもなんか理解しづらい。
階層も複雑だし。
0668デフォルトの名無しさん
2009/04/13(月) 13:31:24ユーザーサポートがめんどくさいから
0669デフォルトの名無しさん
2009/04/13(月) 13:35:450670デフォルトの名無しさん
2009/04/13(月) 16:15:16意味不明な訳語のせいで読んでもさっぱり判らないことが結構多いので、
英語版と両方当たるべし。
入門記事やTipsは、日本語に拘らなければネット上に無料でいっぱい転がってる。
まぁ、ようするに、日本で人気が出ていない技術を触るなら、英語で探せってこった。
0671デフォルトの名無しさん
2009/04/13(月) 18:35:39Win32APIの訳がクソなのは同意だが。
0672デフォルトの名無しさん
2009/04/13(月) 18:39:480673663
2009/04/14(火) 10:37:47ありがとうございました。
(アク禁喰らって書き込みが遅くなってすみません)
0674デフォルトの名無しさん
2009/04/16(木) 16:03:33テストは下記のようにして行いました。
<Canvas Name="canvas0">
<Grid Width="{ Binding ElementName = canvas0, Path = Width }" ShowGridLines="True">
.
.
.
</Grid>
</Canvas>
バインディングで解決しようと試みたのですが駄目なようです。
もしよろしければアドバイスをいただけませんでしょうか・・・。
0675デフォルトの名無しさん
2009/04/16(木) 16:32:52CanvasのWidthは未指定みたいだし。
0676デフォルトの名無しさん
2009/04/16(木) 16:58:06ActualWidthで無事解決できました。
ありがとうございます!
0677デフォルトの名無しさん
2009/04/16(木) 17:46:03Grid使うべき
0678デフォルトの名無しさん
2009/04/16(木) 20:24:21上のGridをレイアウト目的のみに使用しようと思っております。
0679デフォルトの名無しさん
2009/04/16(木) 21:29:32サンプルってどこかにないですか?
0680デフォルトの名無しさん
2009/04/17(金) 22:48:32> そうだね、まだWPF/XAMLの国内本を3冊と、
3冊って、何の本読んだのでしょうか?
0681デフォルトの名無しさん
2009/04/18(土) 03:14:470682デフォルトの名無しさん
2009/04/18(土) 10:37:28エッセンシャル WPF
XAMLプログラミング
WPF 3Dプログラミング
こんなところ?
あとはamazonで評判の悪い本がちらほらあるけど。
0683デフォルトの名無しさん
2009/04/18(土) 12:57:440684デフォルトの名無しさん
2009/04/18(土) 21:31:080685デフォルトの名無しさん
2009/04/19(日) 20:29:57M友・・・ なのか(汗
0686デフォルトの名無しさん
2009/04/19(日) 23:31:55奥はコンテンツを表示するCanvasコンテナで、手前はコントロール類を置くDockPanelコンテナ
で、DockPanelのほうは使わないときは半透明にして奥のCanvasのコンテンツが透けて見える
って感じにしたいんだけど。
0687デフォルトの名無しさん
2009/04/19(日) 23:44:37デスクトップ・アプリケーション・ヒープが枯渇するらしく、
コンテキストメニューの表示がおかしくなるんだけど、
なんか対策ある?
0688デフォルトの名無しさん
2009/04/20(月) 00:02:140689デフォルトの名無しさん
2009/04/20(月) 00:48:10Binding多用して完全にXAMLだけで再現できたときとか
0690デフォルトの名無しさん
2009/04/20(月) 00:56:56デスクトップヒープならレジストリで増やせるだろ。
うんとでかくしておけ。
http://support.microsoft.com/kb/126962/ja
0691デフォルトの名無しさん
2009/04/20(月) 17:57:27<StackPanel>
・・・
</StackPanel>
</Border>
てな感じに入れ子になってると、スタックパネルの領域がウィンドウ幅いっぱいまで
広がってくれないんだけど、いっぱいまで広がってくれるにはどうしたらいいの?
0692デフォルトの名無しさん
2009/04/20(月) 19:08:21<Border>
<StackPanel Background="Black">
</StackPanel>
</Border>
としてみたら、ウィンドウ全体が黒くなったけど?
0693デフォルトの名無しさん
2009/04/20(月) 20:34:35BorderをCanvasに変えてくだされ。
画像ソフトのレイヤ機能みたいに、幾層にも重ねてみたい
(レイヤごとに別のXAMLファイルに分けられればうれしい)けど、
さっぱりわからんなも。
0694デフォルトの名無しさん
2009/04/20(月) 21:20:24<Grid>
<StackPanel Panel.ZIndex="1"/>
<StackPanel Panel.ZIndex="2"/>
</Grid>
レイヤをユーザーコントロールにしておけばXAMLをファイルに分けることもできる
0695デフォルトの名無しさん
2009/04/20(月) 21:38:01望みの動作になった、ありがとう!
0696デフォルトの名無しさん
2009/04/20(月) 22:40:170697デフォルトの名無しさん
2009/04/20(月) 22:43:55これおすすめ。内容がBeta時点のだけど、
エッセンシャルよりいいと思う。
0698デフォルトの名無しさん
2009/04/20(月) 23:17:59コンソールアプリケーションとはちょっと違うが、
ASP.NETと一緒に使って、サーバサイドでの画像生成に使ってるよ
0699デフォルトの名無しさん
2009/04/21(火) 01:07:44主旨はともかく
サンプルコードはbeta時代の書き方ゆえ相当使い物にならんので
買う人は覚悟して。
0700デフォルトの名無しさん
2009/04/21(火) 06:17:28TargetName を指定したら、Style では TargetName は指定できないという
エラーが出てしまいました。
回避する方法はありますか?
0701デフォルトの名無しさん
2009/04/21(火) 08:02:510702シロウト
2009/04/21(火) 19:32:19簡単な方法ない?
0703シロウト
2009/04/21(火) 19:58:130704700
2009/04/21(火) 21:27:16レスありがとうございます。
説明不足ですみません。
色を変えたい Rectangle が6個あるんで、その方法だと6か所に書かないといけません。
バインドする値はひとつですが、色は個別に指定したいと思います。
0705デフォルトの名無しさん
2009/04/23(木) 11:09:02判りやすい記事を紹介していただけますでしょうか・・・。
よろしくお願いします。
0706デフォルトの名無しさん
2009/04/23(木) 16:02:52コントロールの大きさ指定で割合で指定し、親の
サイズが変わっても柔軟に幅や高さを割合で、
変化させられたらと思っています。
ひとまず書いてみましたが、下記のような
width指定は出来ないようでした。
<StackPanel>
<Label Width="32">H:</Label>
<TextBox Width="1*"/>
<Label Width="32">W:</Label>
<TextBox Width="1*"/>
</StackPanel>
代替案としてGridを使用していますが、ソースが膨らむ
傾向にあるため、どうにか解決できればとおもっております。
もしよろしければ良い解決策などをいただけますでしょうか・・・
0707デフォルトの名無しさん
2009/04/23(木) 16:32:51ColumnDefinitionを沢山書くのが嫌って事か?
だったら、Gridのコンテンツを元にColumnDefinitionを生成するコードを書けばいいじゃない。
0708デフォルトの名無しさん
2009/04/23(木) 17:54:36WindowとかのリソースにStyle宣言してTargetTypeでRectangle指定すればいいじゃない
個々のRectangleで更にStyleを追加するならBasedOnで指定すれば良い
0709デフォルトの名無しさん
2009/04/23(木) 19:53:34早い話その通りです、細かいレイアウトの為にいたるところでGridを書くのが面倒だなと。
できればXAMLのみで解決できたらと思っております。
0710デフォルトの名無しさん
2009/04/23(木) 23:32:58XAMLで"Width=Auto"をコードで書くとどうなるんでしょうか?
0711デフォルトの名無しさん
2009/04/24(金) 10:32:53でいけないかな?
0712デフォルトの名無しさん
2009/04/24(金) 10:52:37ってかWidthの解説読めばAutoがなんに該当するか書いてる
0713デフォルトの名無しさん
2009/04/24(金) 11:25:37contentが必要とする大きさになるんでないの?
違った?
0714デフォルトの名無しさん
2009/04/24(金) 12:15:17XAMLから設定した時点でcontentが必要とする大きさに変換されているわけじゃない。
0715デフォルトの名無しさん
2009/04/24(金) 13:06:35Double.NaNと書いてある。
0716デフォルトの名無しさん
2009/04/24(金) 15:00:09コード的には下記のように書いたら描画はされますが、
グリップ表示部分をクリックしても握ってリサイズできません。
<Window ....中略>
<Grid>
<ResizeGrip></ResizeGrip>
</Grid>
</Window>
0717デフォルトの名無しさん
2009/04/25(土) 01:57:180718デフォルトの名無しさん
2009/04/25(土) 03:21:27ググれよ
http://social.msdn.microsoft.com/Forums/ja-JP/wpf/thread/aa75caf6-6199-4aaf-aacc-68001cd0c1c6
0719デフォルトの名無しさん
2009/04/28(火) 22:34:040720デフォルトの名無しさん
2009/04/28(火) 22:37:56オーム社から出てたのか・・・
なんでオライリー出さないのか不思議だった
0721デフォルトの名無しさん
2009/04/28(火) 22:43:03日本語でおk
0722デフォルトの名無しさん
2009/04/28(火) 23:36:090723デフォルトの名無しさん
2009/04/29(水) 00:28:300724デフォルトの名無しさん
2009/04/29(水) 00:51:440725デフォルトの名無しさん
2009/04/29(水) 01:37:43MSDN読んでこいよw
0726デフォルトの名無しさん
2009/04/29(水) 01:56:080727デフォルトの名無しさん
2009/04/29(水) 02:19:46722と726で言ってること違うな
0728デフォルトの名無しさん
2009/04/29(水) 03:39:23<Window x:Class="WpfGridAdd.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ListView x:Name="listview">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=Col1}" />
</GridView>
</ListView.View>
</ListView>
</Window>
using System;
using System.Windows;
using System.Collections.ObjectModel;
namespace WpfGridAdd
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
ObservableCollection<MyItem> items = new ObservableCollection<MyItem>();
items.Add(new MyItem("sample1-col1"));
listview.ItemsSource = items;
}
}
public class MyItem
{
private string _col1; public string Col1 { get { return _col1; } set { _col1 = value; } }
public MyItem(string col1) { _col1 = col1; }
}
}
0729デフォルトの名無しさん
2009/04/29(水) 08:40:05ありがとう。できました。
2chなんかでどうせろくな回答得られないと思ってだめもとで
質問してみたけど、あなたみたいな素敵な人がいるって
捨てたもんじゃないと、嬉しい限りです。
それにしても行追加するぐらいでクラスまで作って
こんなめんどくさいことするなんてなんだかWPFって
どうなのかと思いました。
0730デフォルトの名無しさん
2009/04/29(水) 09:19:44itemsに新しい値をいれてそして
listview.ItemsSource = items;
をする事になるのでしょうか?
1行では済まないですか?
それと
listview.ItemsSource = items;
だと1つしかセルを操作してなくても
全部の内容をセットしなおすのはなんだか無駄な気がするので
ここはすっきりできないものでしょうか?
0731デフォルトの名無しさん
2009/04/29(水) 09:47:24要素の中身をいじった場合はその要素がINotifyPropertyChangedを実装してるか
あるいはいじったのが依存プロパティで実装されてるなら自動で反映される
0732726=728
2009/04/29(水) 13:57:56> listview.ItemsSource = items;
> をする事になるのでしょうか?
例としてローカル変数にしたけど、itemsをクラス変数にして最初に
ItemsSourceに代入しておけば後で操作しても反映される。のでAdd1行で済むよ。
必須ではないがitemsをプロパティにしてListViewにバインドしてもいい。
<ListView ItemsSource="{Binding Path=Items}" (略
0733デフォルトの名無しさん
2009/04/29(水) 15:27:24<ListView ItemsSource="{Binding Path=Items}" (略
ただ、これやってみたけど反映されませんでした。
itemsをクラス変数にして最初に
ItemsSourceに代入しておけば後で操作しても反映される
これってどうするんですか?
すいません。こんな僕でよかったら教えてください。
0734デフォルトの名無しさん
2009/04/29(水) 16:04:260735デフォルトの名無しさん
2009/04/29(水) 16:24:03@<ListView ItemsSource="{Binding Path=Items}" (略 をやった→スルー
AINotifyPropertyChangedで検索
http://msdn.microsoft.com/ja-jp/library/ms229614(VS.85).aspx
にたどりつくも意味不明
B依存プロパティで検索するもいっぱいありすぎてワケワカメ
こんなところです。
0736726
2009/04/29(水) 16:57:38private ObservableCollection<MyItem> _items = new ObservableCollection<MyItem>();
public ObservableCollection<MyItem> Items { get { return _items; } set { _items = value; } }
public Window1()
{
InitializeComponent();
this.DataContext = this;
_items.Add(new MyItem("sample1-col1"));
}
0737726
2009/04/29(水) 17:05:16こっちは
> itemsをクラス変数にして最初に
> ItemsSourceに代入しておけば後で操作しても反映される
> これってどうするんですか?
private ObservableCollection<MyItem> _items = new ObservableCollection<MyItem>();
public Window1()
{
InitializeComponent();
listview.ItemsSource = _items;
_items.Add(new MyItem("sample1-col1"));
}
こういうこと。バインドしないというだけで違いはない。
0738デフォルトの名無しさん
2009/04/29(水) 23:24:18737のやり方でやりました。
行追加したらいちいち
listview.ItemsSource = _items;
これしなくてもできました。
助かりました。
ただ、各々のセルの値を変更したい場合はどうすればいいのでしょうか?
また、バッグカラーやフォアグランドなどを変更する方法も
教えて頂ければ助かります。
C#のDataGridViewは慣れてるんですがxamlはなかなか大変です。
0739726
2009/04/30(木) 00:37:33public class MyItem : INotifyPropertyChanged {
private string _col1; public string Col1 { get { return _col1; } set { _col1 = value; NotifyPropertyChange("Col1"); } }
public MyItem(string col1) { _col1 = col1; }
public event PropertyChangedEventHandler PropertyChanged;
internal void NotifyPropertyChange(string propName) {
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propName));
}
}
で、変更したい時に
_items[0].Col1 = DateTime.Now.ToString("HH:mm:ss");
みたいに。
セルの外観はXAMLでGridViewColumnにHeaderTemplateやCellTemplateを定義すればなんぼでも。
あとは長くなるんでググってね。初めは面倒に思うが難しくないよ。
0740デフォルトの名無しさん
2009/04/30(木) 02:20:51お世話になっております。726様。
やってみたのですが、変わらないです。
それと、セルの値やバッグカラーはコードから変更したいので
XAML側でやるわけではないのです。
明日というか今日もご返信いただければ嬉しいです。
今日は疲れました。寝ます。おやすみなさい。
0741デフォルトの名無しさん
2009/04/30(木) 15:33:330742デフォルトの名無しさん
2009/04/30(木) 15:55:58教えることで知らないことも出てくるかもしれないからな。
まあ世話されてる野郎は問題児だが。
0743デフォルトの名無しさん
2009/04/30(木) 18:23:42ただ、チェックボックスの列があるんですが
trueにしてるのにOFFで表示されます。
それとコードから値変えてるのに変更されません。
内容はこれです。
0744デフォルトの名無しさん
2009/04/30(木) 18:25:25{
InitializeComponent();
listView1.ItemsSource = items;
}
0745デフォルトの名無しさん
2009/04/30(木) 18:27:12public class PersonName : INotifyPropertyChanged
{
private bool tf;
private int bango;
private string firstName;
private string lastName;
public PersonName(bool tt, int ban, string first, string last)
{
tf = tt;
bango = ban;
firstName = first;
lastName = last;
}
public bool Cb
{
get { return tf; }
set { tf = value; }
}
public int Number
{
get { return bango; }
set { bango = value; }
}
0746デフォルトの名無しさん
2009/04/30(木) 18:28:27{
get { return firstName; }
set { firstName = value; }
}
public string LastName
{
get { return lastName; }
set { lastName = value; }
}
public event PropertyChangedEventHandler PropertyChanged;
internal void NotifyPropertyChange(string propName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propName));
}
}
0747デフォルトの名無しさん
2009/04/30(木) 18:29:27{
items.Add(new PersonName(true, items.Count, "kkk", "lll"));
}
private void button2_Click(object sender, RoutedEventArgs e)
{
items[2].LastName = "まゆみ";
}
0748デフォルトの名無しさん
2009/04/30(木) 18:41:56NotifyPropertyChangedメソッドが呼ばれてなくて寂しそうじゃねーか
もっと739のコードよく見ろ
0749デフォルトの名無しさん
2009/04/30(木) 19:30:27<DataTemplate x:Key="FirstCell">
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding Path=Cb, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}}"/>
</StackPanel>
</DataTemplate>
</Window.Resources>
0750デフォルトの名無しさん
2009/04/30(木) 19:32:51<ListView.View>
<GridView x:Name="kanri" AllowsColumnReorder="False" >
<GridViewColumn x:Name="isf" Width="30" CellTemplate="{StaticResource FirstCell}" >
<GridViewColumnHeader Content="選択" Background="Black" Foreground="AliceBlue" />
</GridViewColumn>
<GridViewColumn x:Name="namae" Width="100" DisplayMemberBinding="{Binding Path=Number}">
<GridViewColumnHeader Content="名前" Background="Red" />
</GridViewColumn>
<GridViewColumn x:Name="jotai" Width="70" DisplayMemberBinding="{Binding Path=FirstName}">
<GridViewColumnHeader Content="状態" Background="Green" />
</GridViewColumn>
<GridViewColumn x:Name="jikan" Width="70" DisplayMemberBinding="{Binding Path=LastName}">
<GridViewColumnHeader Content="時間" Background="Green" />
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
0751デフォルトの名無しさん
2009/04/30(木) 19:35:31ありがとう。見落としてました。
それぞれ
public bool Cb
{
get { return tf; }
set { tf = value;
NotifyPropertyChange("Cb");
}
}
こういう風にすべきだった。
ちなみにコード書きまくったせいでアクセス規制になってしまったので
他のパソコンから書いてます。
間が空いてすみません。
0752デフォルトの名無しさん
2009/04/30(木) 19:36:59OFFになってしまいます。
困りました。
0753デフォルトの名無しさん
2009/04/30(木) 20:37:140754デフォルトの名無しさん
2009/04/30(木) 20:50:240755デフォルトの名無しさん
2009/04/30(木) 20:56:33あくまでWindows専用のプレゼンテーションフレームワークだろ
0756デフォルトの名無しさん
2009/04/30(木) 21:36:07はMONOで動くんだけど
0757デフォルトの名無しさん
2009/04/30(木) 22:01:30がんばって移植したんじゃないの?
GTK#とWindows.Formsとどっちが安定してるかは知らんけど
0758デフォルトの名無しさん
2009/05/01(金) 00:57:28726さんに見捨てられちゃったかな。
それか、チェックボックスはやり方知らなかったんだろうか。
0759釣られてみる
2009/05/01(金) 01:05:300760デフォルトの名無しさん
2009/05/01(金) 01:13:31ありがとう。助かった。
これで寝られる。
MSDNまるまるこぴぺしたのに。
何だよあれ。
0761デフォルトの名無しさん
2009/05/01(金) 01:16:30セルのバッグカラーはコードからどうやって操作するか教えてください。
お願いします。
0762デフォルトの名無しさん
2009/05/01(金) 01:51:090763デフォルトの名無しさん
2009/05/01(金) 11:52:500764デフォルトの名無しさん
2009/05/01(金) 12:23:230765デフォルトの名無しさん
2009/05/01(金) 12:55:230766デフォルトの名無しさん
2009/05/01(金) 22:19:38それとも、コードからセルのスタイル設定する方法は知らないのだろうか。
0767デフォルトの名無しさん
2009/05/01(金) 22:36:09何せ自分の頭で考えるということを知らない奴を相手にするのは面倒だ
0768デフォルトの名無しさん
2009/05/01(金) 23:25:59つまらん煽りをいれるなよ
普通の頭持ってる奴なら調べればすぐ分かることだ
それでも分からず教えてもらいたいなら聞き方を学んで来い
0769デフォルトの名無しさん
2009/05/01(金) 23:34:370770デフォルトの名無しさん
2009/05/02(土) 06:25:14「Gridview セル」とかGridviewまわりで調べてたので見つからなかったけど
「ListView セル」で調べてみたら
http://msdn.microsoft.com/ja-jp/library/ms750769.aspx
こんなの見つけました。
1行ですぱっと済む方法はないのですね?
がんばります。
0771デフォルトの名無しさん
2009/05/02(土) 18:48:15セル単位での変更なんて相当調べたけど見つからないぞ。
何が調べればすぐわかるだよ。
何か人の聴き方が悪いとかのせいにして
自分達の無知を隠そうとしてるだけじゃないか。
0772デフォルトの名無しさん
2009/05/02(土) 19:11:430773デフォルトの名無しさん
2009/05/02(土) 23:48:35そんなわけのわからんことをしようとするから
どうでもいい問題にぶつかるんだ。
セルの色は変えるな。
0774デフォルトの名無しさん
2009/05/02(土) 23:50:14何だよ、その理屈。ぐすん。
普通のWindowsアプリだったら1行でさくっと済むことなのにさ。
0775デフォルトの名無しさん
2009/05/03(日) 00:06:46お前にWPFは向いてないよ。
0776デフォルトの名無しさん
2009/05/03(日) 00:43:090777デフォルトの名無しさん
2009/05/03(日) 00:58:080778デフォルトの名無しさん
2009/05/03(日) 01:23:170779デフォルトの名無しさん
2009/05/03(日) 01:48:08向いてないも何も調べたって資料出てこないぞ。
調べもしないでとか言うくせに、全然資料ないし。
みんなも実はやり方知らなかったジャン。
>>778
え?あったの?はやく言ってよ。
0780デフォルトの名無しさん
2009/05/03(日) 02:11:09こういうアホでもプログラミング出来る時代になったんだなと
感慨深い
0781デフォルトの名無しさん
2009/05/03(日) 02:26:00何だよ。アホとかバカとか。
自分もやり方知らないくせに。
0782デフォルトの名無しさん
2009/05/03(日) 02:43:350783デフォルトの名無しさん
2009/05/03(日) 10:41:00自分が知らないことは他人も知らないと決め付けて何も得られないかわいそうな人
0784デフォルトの名無しさん
2009/05/03(日) 14:18:320785デフォルトの名無しさん
2009/05/03(日) 14:40:30Silverlight 4あたりで統合されるだろうから、心配いらないんじゃない?
まだ、2,3年かかるかもしれないけど。
0786デフォルトの名無しさん
2009/05/03(日) 17:22:26だよな
0787デフォルトの名無しさん
2009/05/03(日) 21:29:38ドラッグアンドドロップできるようにしたんだけど、ウィンドウのタイトルバーへは
なぜかドロップできない。他のアプリ(たとえばVisualStudio)ではタイトルバーへのドロップでも
受け付けるのだけれど、何がまずいんだろうか?
0788デフォルトの名無しさん
2009/05/04(月) 00:09:10妥協策考えた。
ユーザーコントロールでラベル横に並べたやつを作って
スクロールビュワーに追加していくことにした。
これでめんどくさいことなくなる。
0789デフォルトの名無しさん
2009/05/04(月) 02:46:470790デフォルトの名無しさん
2009/05/04(月) 09:15:48そんな感じだから見栄っ張りとか言われるんだぞ。ぷーん。
0791デフォルトの名無しさん
2009/05/04(月) 11:08:580792デフォルトの名無しさん
2009/05/04(月) 19:22:16WPFやるよりSilverlightの方がいいの?
動作の速いほうを希望
0793デフォルトの名無しさん
2009/05/04(月) 20:26:020794デフォルトの名無しさん
2009/05/04(月) 20:59:120795デフォルトの名無しさん
2009/05/04(月) 22:06:370796デフォルトの名無しさん
2009/05/04(月) 22:59:58そうでなければSilverlight
でいいだろ
0797デフォルトの名無しさん
2009/05/04(月) 23:52:570798デフォルトの名無しさん
2009/05/05(火) 00:21:080799デフォルトの名無しさん
2009/05/05(火) 11:29:33ContextMenu の HMENU は取得する方法ない?
0800デフォルトの名無しさん
2009/05/05(火) 12:30:21もっさりしてるのはあれのせいだろ。
0801デフォルトの名無しさん
2009/05/05(火) 17:44:10俺の時代到来
ttp://lol.blog12.fc2.com/blog-entry-422.html
0802デフォルトの名無しさん
2009/05/06(水) 08:36:24void Foo(){
Mouse.OverrideCursor = Cursors.Wait;
DataContext = (hogehoge.)
Mouse.OverrideCursor = null;
}
としてみたんですが、再描画するのは Foo を抜けた後らしく砂時計になりませんでした。
0803デフォルトの名無しさん
2009/05/06(水) 09:59:24レンダリングよりも低い優先順位でキューに突っ込んでおけばいけるはず。試してみて。
Mouse.OverrideCursor = Cursors.Wait;
DataContext = hoge;
Dispatcher.BeginInvoke(DispatcherPriority.Loaded, (Action)(() => { Mouse.OverrideCursor = null; }));
0804デフォルトの名無しさん
2009/05/06(水) 14:32:13現在、Canvas内にImageを適当に配置しております。
これらドラッグして移動させるように作っているのですが、
ドラッグ中はCanvas内で表示と優先度をどのImageよりも
高く設定したいと思っております。
ButtonなどはZIndexプロパティーなどがありますが、
Imageなどには存在していないようです。
表示の優先は後に記述してあるImageの方が高くなるようですが、
これをプログラムから制御する方法などはございますでしょうか?
0805デフォルトの名無しさん
2009/05/06(水) 15:02:440806デフォルトの名無しさん
2009/05/06(水) 15:09:20親要素は何を指定したら良いのでしょうか・・・
0807デフォルトの名無しさん
2009/05/06(水) 16:05:46UACが絡むときがある
0808デフォルトの名無しさん
2009/05/06(水) 16:36:41Panel の ZIndex 添付プロパティを使う。XAML なら Panel.ZIndex="10"、コードなら次の通り。
Panel.SetZIndex(hogeImage, 10);
もしくは
hogeImage.SetValue(Panel.ZIndexProperty, 10);
2つとも意味は同じ。親要素は Canvas でも問題ないよ。
0809デフォルトの名無しさん
2009/05/06(水) 16:58:49早速のお返事ありがとうございます。
無事問題を解決できました。
今までのプログラミング経験からは、なかなか
添付プロパティを意識できなかったので探せていませんでした。
ありがとうございました。
0811デフォルトの名無しさん
2009/05/06(水) 23:41:07作りたいです。
ToolbarTray に横幅を合わせるだけなら Binding で解決できますが、
同じ Band 上に他のツールバーがあるときは、それを考慮した上でいっぱいに
広げるにはどうしたらよいでしょうか?
0812デフォルトの名無しさん
2009/05/08(金) 16:15:00<StackPanel Width="500">
<TextBlock>Hello</TextBlock>
</StackPanel>
</ToolBar>
とすると、ToolBar のクライアント領域?を超えるため表示されなくなってしまいますが、
クライアント領域を超えない最大幅を設定したい場合はどうしたらよいのでしょう?
0813デフォルトの名無しさん
2009/05/08(金) 16:18:100814812
2009/05/08(金) 20:36:47<StackPanel Width="Auto">
<TextBlock>Hello</TextBlock>
</StackPanel>
</ToolBar>
Auto にした場合、TextBlock のサイズにサイズにされちゃうんですよね。
StackPanel を TooBar の内寸いっぱいに表示して、TextBlock (と実際には
あといくつかのコントロールを)を StackPanel いっぱいに表示したいって
感じです。
0815デフォルトの名無しさん
2009/05/08(金) 20:43:400816デフォルトの名無しさん
2009/05/08(金) 21:15:09あとは幅を自動調整で割合一定で表示したいならSTackPanelよりGridがよくないかな。
0817812
2009/05/08(金) 22:55:05<StackPanel Width="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ToolBar}},Path=ActualWidth}" Orientation="Horizontal">
としてみましたが、Width="500" とした場合と同じで中身が消えちゃいますね。
>>816
同じ割合ではなく、特定項目以外は固定幅にしたいんです。
<ToolBar Width="250">
<StackPanel Width="200" Background="Yellow" Orientation="Horizontal">
<TextBlock Width="30" Background="Aqua">Hello</TextBlock>
<TextBox>ABC</TextBox>
<Button Width="50">OK</Button>
</StackPanel>
</ToolBar>
現状はこんな感じで、
1.StackPanel を ToolBar の内寸いっぱいに
2.TextBlock と Button のサイズは固定で TextBox の大きさを連動して変えたい
って感じです。
StackPanel の代わりに DockPanel のほうが適切かな?
1 を実現する方法がわからないので困っています。
0818デフォルトの名無しさん
2009/05/09(土) 01:02:32子要素1つの大きさ自動ならDockPanelかGridどっちでも
0820デフォルトの名無しさん
2009/05/09(土) 10:11:45みかけますが、あれって、自動でやる方法があるのでしょうか?
現在は、手動でならべ変えていて面倒なので良い方法はないかと。
0821デフォルトの名無しさん
2009/05/09(土) 13:56:290822デフォルトの名無しさん
2009/05/09(土) 18:00:25バインディング時のアップデート方法は何通りか選択でき、デフォルトでは
フォーカスが無くなった時にソースへアップデートされます。
この動作を、テキストボックスに値を入力した後、エンターを入力した
時点でソースへデータをアップデートできたらと思っています。
何か良い方法はございますでしょうか?
0823デフォルトの名無しさん
2009/05/09(土) 18:09:270824デフォルトの名無しさん
2009/05/09(土) 21:05:49手動で設定するしかないんだろうか。
0825デフォルトの名無しさん
2009/05/10(日) 06:51:57これを一行でおさめたいです。
調べた結果、TabPanel のかわりのカスタムコントロールを自分で作るしかない
ように思われるのですが、xaml だけで済ませるほうほうがあったら教えてください。
0826デフォルトの名無しさん
2009/05/10(日) 12:50:310827デフォルトの名無しさん
2009/05/10(日) 22:46:16どもです、KeyUpイベントにてUpdateSourceを使用しましたら実現できました。
0828デフォルトの名無しさん
2009/05/12(火) 08:16:56https://timesreader.nytimes.com/webapp/wcs/stores/servlet/AppLogin?storeId=10001&catalogId=10001
1.0 WPF製 ← 廃止
↓
Silverlightで作り替え ← 中止
↓
2.0 Adobe AIR製 ← 今ここ
0829デフォルトの名無しさん
2009/05/12(火) 08:47:04↓
Ajax
↓
Flash
↓
NewYorkPostに買収される
0830デフォルトの名無しさん
2009/05/12(火) 15:55:37XAMLから
<TextBlock Text="test" />
のようにしてもMy text testと表示されません。
何か追加の処理が必要ですか?
namespace WpfApplication1
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
}
public class TextBlock : DependencyObject
{
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof(string), typeof(TextBlock));
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, "My text" + value); }
}
}
}
0831デフォルトの名無しさん
2009/05/12(火) 16:20:51実装案としまして、下記のような物を考えました。
○<Grid>を作成(トラックをrow、フレームをcolumnとする)。
○グリッドを<Separator>で分割して格子を作成。
○各トラック上に存在するオブジェクトをLabelにて表現。
WPFの経験が浅いので、このようにしか思いつきませんでした。
もしより良い方法がございましたらお教えいただけますでしょうか・・・。
よろしくお願いいたします。
0832デフォルトの名無しさん
2009/05/12(火) 20:34:51XAMLに追加しようとすると、UIElementCollectionに追加できません。
とエラーになります。型UIElementの項目しか駄目みたいですが
どうすればUIElementの項目にできるのでしょうか?
namespace CustomLib
{
public class Widget : DependencyObject
{
public static readonly DependencyProperty MyTextProperty =
DependencyProperty.Register("MyText", typeof(string), typeof(Widget));
public string MyText
{
get { return (string)GetValue(MyTextProperty); }
set { SetValue(MyTextProperty, "My text" + value); }
}
}
}
0833デフォルトの名無しさん
2009/05/12(火) 21:00:44>>830
DependencyObjectは外見を持たない
>>832
継承ってわかる?
UIElementCollection調べた?
0834デフォルトの名無しさん
2009/05/12(火) 21:14:35レスありがとうございます。
同一人物です。
何か見当違いのことをやろうとしていたみたいです。
失礼しました。
DependencyObjectをFrameworkElementが継承して
いました。
0835デフォルトの名無しさん
2009/05/13(水) 00:26:20背景が青、前景が白になり、アイコンは青みがかったような表示になりますが、あれと同じ
ように表示する機能を作っています。
現状、項目が選択された時にテキスト部分の背景と前景を変える事はできたのですが
アイコンを青みがかったような表示にする方法が分からず、どうすれば実現できるでしょうか?
(itemの構成は、StackPanelにImageとCanvasを配置しCanvasの中にTextBlockを
置いています。Imageのソースはpngファイルです。)
0836デフォルトの名無しさん
2009/05/13(水) 13:30:19// Adornerでもいいかな
0837デフォルトの名無しさん
2009/05/13(水) 15:25:19OutlookExpress みたいな3ペインのウィンドウで作っていて、
500 行超えたので見通し悪いので、ペインごとに UserControl に
しようとかと考えてるんだが。
それぞれのペインはそのウィンドウでしか使わないので、
再利用性とかは考えなくてもいい。
こんな場合、お前らどうする?分割する?しない?
MVVM モデルで作っているという前提でお願いします。
0839デフォルトの名無しさん
2009/05/15(金) 09:20:49DragEnter,DragOver 時は KeyStatets==RightMouseButton だったんだけど、
Drop 時だけは、KeyStatets==None になってた。
Drop 時の DragEventArgs からはどのマウスボタンでドラッグされたかは
わからないということ?
0840デフォルトの名無しさん
2009/05/15(金) 09:56:45DragMoveでの最終値を保存しとけば?
0841デフォルトの名無しさん
2009/05/16(土) 23:27:49これって何かの意図があるんでしょうか?
0842デフォルトの名無しさん
2009/05/17(日) 08:25:21DataGridが欲しいのであればWPFToolkitをどうぞ
>>1のリンクは少し古いので注意(最新はMarch 2009)
0843デフォルトの名無しさん
2009/05/17(日) 08:40:45Microsoftの予想では、もっとビジネスアプリの割合は少ないはずだったらしい。
0844デフォルトの名無しさん
2009/05/17(日) 17:28:52編集の必要があるのでGridViewにTextBoxを入れて編集可能に、とやってみたのですが、
選択時にも背景色が白のまま/前景色が黒のままだったり、
テキストボックス部分を選択しても行選択にならなかったり、
キーボード操作が非常に不便で使い物になりそうもない or
使い物になるようにするのはかなり大変そうでした。WPFToolkitも検討してみます。
0845デフォルトの名無しさん
2009/05/18(月) 01:24:00<Grid Grid.Row="2" Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Name="_aaa" Width="192"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Name="_bbb" Height="22"/>
<RowDefinition Height="18"/>
<RowDefinition Height="18"/>
</Grid.RowDefinitions>
<Line Grid.Column="0" Grid.Row="0"
X1="0"
Y1="{Binding ElementName=_bbb, Path=ActualHeight}"
X2="{Binding ElementName=_aaa, Path=ActualWidth}"
Y2="{Binding ElementName=_bbb, Path=ActualHeight}"
Stroke="Black" StrokeThickness="10"/>
</Grid>
続きます・・・
0846デフォルトの名無しさん
2009/05/18(月) 01:26:43Lineはちゃんと表示されております。
しかし、コンパイルして起動すると描画されないので困っています。
Lineの座標指定をバインディングではなく、
即値で指定すると表示される事を確認しました。
バインディングの行い方に問題があるようなのですが、
いまいちその作法がわかりません。
もしよろしければ、解決方法をお教えいただけますでしょうか・・・
0847デフォルトの名無しさん
2009/05/18(月) 09:42:57<Line
X1="0"
Y1="{Binding ElementName=Canvas1, Path=ActualHeight}"
X2="{Binding ElementName=Canvas1, Path=ActualWidth}"
Y2="{Binding ElementName=Canvas1, Path=ActualHeight}"
Stroke="Black" StrokeThickness="10"/>
</Canvas>
0848デフォルトの名無しさん
2009/05/18(月) 15:05:40<Grid.ColumnDefinitions>
<ColumnDefinition Name="_aaa" Width="{Binding Path=Value, ElementName=slider, Mode=Default}"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Name="_bbb" Height="22"/>
<RowDefinition Height="18"/>
<RowDefinition Height="18"/>
</Grid.RowDefinitions>
<Line Grid.Column="0" Grid.Row="0"
Y1="{Binding ElementName=_bbb, Path=ActualHeight, Mode=OneWay}"
X2="{Binding Path=ActualWidth, ElementName=Window, Mode=OneWay}"
Y2="{Binding ElementName=_bbb, Path=ActualHeight, Mode=OneWay}"
Stroke="Black" StrokeThickness="35"/>
<Slider VerticalAlignment="Bottom" Grid.Column="0" Grid.Row="3" x:Name="slider" Maximum="500" Value="200" Grid.ColumnSpan="2" Grid.RowSpan="1"/>
</Grid>
こんな感じなら値が変わったときに適応
0849846
2009/05/18(月) 16:08:04>>847
同じように記述しましたら無事描画できました。
Canvasに入れないと描画出来ないのは仕様?なのかな。
もしよろしければこの辺に言及しているWebの資料がございましたら、
紹介していただけますでしょうか・・・。
>>848
多分スライダーにあわせてLineが伸びるように、実装されて
いると思われますが、Lineは表示されませんでした。
申し送れましたが環境は、Visual C# 2008 Express Edition、
OSはXPでSP2 を当てております。
StandardやProfessionalとは動作が違う?のかな。
0850デフォルトの名無しさん
2009/05/18(月) 18:32:37もっと自分で勉強したほうがいいんじゃねーの?
0851デフォルトの名無しさん
2009/05/19(火) 12:01:04<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" x:Name="Window" Width="640" Height="480">
<Grid Grid.Row="2" Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Name="_aaa" Width="{Binding Path=Value, ElementName=slider, Mode=Default}"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Name="_bbb" Height="22"/>
<RowDefinition Height="18"/>
<RowDefinition Height="18"/>
</Grid.RowDefinitions>
<Line Grid.Column="0" Grid.Row="0"
Y1="{Binding ElementName=_bbb, Path=ActualHeight, Mode=OneWay}"
X2="{Binding Path=ActualWidth, ElementName=Window, Mode=OneWay}"
Y2="{Binding ElementName=_bbb, Path=ActualHeight, Mode=OneWay}"
Stroke="Black" StrokeThickness="35"/>
<Slider VerticalAlignment="Bottom" Grid.Column="0" Grid.Row="3" x:Name="slider" Maximum="500" Value="200" Grid.ColumnSpan="2" Grid.RowSpan="1"/>
</Grid>
</Window>
0852デフォルトの名無しさん
2009/05/20(水) 01:02:16実行時にLineの値を確認すると上手く値を持ってこれておらずBindingが
機能してませんね。
今回の状況では実行に変わるソースの値で更新しようとしてますが、これには
ソース側のプロパティが依存関係プロパティでないとダメなのかな。
Canvas.ActualHeightはFrameworkElementから継承した依存関係プロパティを
持ってるね。
一言で言うとソースにColumnDefinitionを選んだのがよろしくなかった、と
0853デフォルトの名無しさん
2009/05/20(水) 08:27:25/NODEFAULTLIB:msvcmrt.libとか/clr:safeとか適当にやっても
「インスタンスを作成できません。」とでてしまいます・・・
0854デフォルトの名無しさん
2009/05/20(水) 09:48:290855849
2009/05/22(金) 01:14:05レスありがとうございます。
ColumnDefinitionはependencyObjectを継承しているので、
てっきりすべてのプロパティーは依存関係プロパティーだと思っておりました。
もしよろしければ見分ける方法をお教えいただけたられしいです。
0856849
2009/05/22(金) 02:38:01MSDNをもう一度呼んでみましたが、プロパティーの解説に
「依存関係プロパティーです」との但し書きが在る無しで見分ければ良いのでしょうか?
0857デフォルトの名無しさん
2009/05/23(土) 08:51:00> 通常、テキスト フィールドには適していません。各キーストロークの後に更新を行うと、
> パフォーマンスが低下する可能性があり、ユーザーは新しい値をコミットする前に BackSpace
> キーを使用して入力エラーを修正するという通常の操作ができなくなります。
分からなくはないけど…パフォーマンスはともかく、
エラー表示が一旦出てもそのままユーザは修正できるか大きな問題ではない気が。
フォーカスの順序がテキストボックス→ボタンとなっていて、
ボタンのCommandのCanExecuteがテキストボックスの内容に依存している場合、
テキストボックスでTabを押したときにボタンに移動できない気が。
こっちのほうがずっと致命的じゃないか?
0858デフォルトの名無しさん
2009/05/23(土) 08:54:10×テキストボックスでTabを押したときにボタンに移動できない気が。
○ボタンが無効な状態でテキストボックスの入力を(ボタンがが有効になるよう)修正し、
そのままTabを押したときにボタンに移動できない気が。
0859デフォルトの名無しさん
2009/05/23(土) 23:25:31Converter で Binding したときってどうやって View に変更を通知するの?
0860デフォルトの名無しさん
2009/05/23(土) 23:46:31INotifyPropertyChangedでできるはずだけど、そういうことじゃないの?
0861859
2009/05/24(日) 21:13:02View 側には {Binding Path=Foo} としたときは、
ViewModel 側で、OnPropertyChanged("Foo") で View は更新されます。
View 側に、{Binding Converter={StaticResource fooConverter}} としたときは、
OnPropertyChanged では通知のしようがないとおもってたんだけど
ちがうの?
0862デフォルトの名無しさん
2009/05/24(日) 21:22:540863デフォルトの名無しさん
2009/05/24(日) 22:42:50バインドを理解していないような気がするが。
Pathを省略=オブジェクト全体をPathに指定
Converterを省略=デフォルトのコンバータをConverterに指定
省略できるだけで、両方とも常にやっている。
で、オブジェクト全体の変更通知(PropertyChangedの第二パラメタ=null)
すればいいんじゃないか?やったことないけどな。
0864デフォルトの名無しさん
2009/05/24(日) 23:19:34・BindingExpression.UpdateTargetを呼び出す
のどっちかかな
0865859
2009/05/25(月) 22:40:21勉強になりました。
0866デフォルトの名無しさん
2009/05/26(火) 01:37:010867デフォルトの名無しさん
2009/05/26(火) 02:00:270868デフォルトの名無しさん
2009/05/26(火) 18:00:28特定コントロールの原点からのマウスカーソル座標を得たいと思っています。
コントロール内にマウスがある場合はMouseMoveなどのイベントで、
座標情報を取得できますが、そのコントロール外にカーソルが出てしまうと
イベントが発生しないため取得が出来ませんでした。
マウスカーソルがWindowの外に出てからも、特定コントロールからの
マウスカーソル座標を得たい場合、どのような手法があるのでしょうか?
0869デフォルトの名無しさん
2009/05/26(火) 18:25:250870デフォルトの名無しさん
2009/05/26(火) 22:55:240872デフォルトの名無しさん
2009/05/27(水) 14:22:47・MouseDown
・MouseUp
内で、
・CaptureMouse();
・ReleaseMouseCapture();
を呼び出したら希望通りの動作を実現できました。
ありがとうございました!
0873デフォルトの名無しさん
2009/05/27(水) 20:31:07複数の値が関係してOK/NGが判定される場合どうすればいいんでしょう?
最大値を入れるテキストボックスと、最小値を入れるテキストボックスがあり
「大小関係に矛盾があったら両方にエラーを出せ」と要求されています。
そのまま最大値と最小値を個別に実装すると、
最大値を変更して"最大値<最小値"に設定した場合、最大値側のほうにだけエラーが表示されます。
(変更されなきゃエラーの判定なんてされないのだから当然でしょうが)
今は最大値を変更されたら、PropertyChangedを使って
最小値を変更したように見せかけエラーを表示させています。
この場合、ViewとViewModelの値が違う場合(数値以外が入力された場合等)に、
Viewに表示されている値が、ViewModel側の値に強制的に変わってしまいます。
どうにも挙動が微妙に怪しくなってしまうので、そもそも使い方が間違っているような気が…
0874デフォルトの名無しさん
2009/05/30(土) 12:21:32<Setter ... />
(略)
</Trigger>
<Trigger Property="DockPanel.Dock" Value="Right">
<Setter .../>
(略)
</Trigger>
↑こんな風に xaml 書いてるんですが、Setter 部分は共通なのでできれば Trigger を一つにしたいです。
<Trigger Property="DockPanel.Dock" Value="Left" or "Right">
みたいに書きたいってことなんですが、なにか良い方法ありますか?
0875デフォルトの名無しさん
2009/05/31(日) 16:01:22ボタンなどのように親パネルの大きさに合わせることができないってずっと
思い込んでいたのだが、Stretchプロパティを使えば同じように自動で
拡大縮小させられるんですな。
知りませんでしたよ。
0876デフォルトの名無しさん
2009/05/31(日) 17:16:21>>801にある新しいClearTypeってClearTypeHintってやつ?
beta1ではonになってるはずだが、相変わらずMSゴシックはボケボケだ。
0877デフォルトの名無しさん
2009/05/31(日) 17:19:02あれは7ではWPFではなくネイティブプログラムになったぞ
0878デフォルトの名無しさん
2009/05/31(日) 17:41:39Text enhancements の方なんじゃね?
中の人も Beta2 でめっちゃ良くなるよって言ってるし
ttps://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=455110&wa=wsignin1.0
0879デフォルトの名無しさん
2009/05/31(日) 17:45:03Text enhancements
WPF 4.0 Beta 2 introduces a new text rendering stack which allows for much clearer text rendering.
This change adds the necessary knobs to allow WPF text to look virtually indistinguishablefrom Windows’ traditional GDI-rendered text.
The clarity improvements also dramatically improve readability for many East Asian languages.
0880デフォルトの名無しさん
2009/05/31(日) 17:50:420881デフォルトの名無しさん
2009/05/31(日) 17:58:380882デフォルトの名無しさん
2009/05/31(日) 18:24:180883デフォルトの名無しさん
2009/05/31(日) 20:38:29独自レンダリングなんだから
0884デフォルトの名無しさん
2009/05/31(日) 21:20:15四半世紀くらい前に出版されたInside Macintoshって本にその意義が
載っていたのを思い出した。懐かしい。
0885デフォルトの名無しさん
2009/06/02(火) 11:32:00グリッドごとにくくって「Visible=Hidden、Visible」を指定して切り換えているんだけど、もっとうまい方法ない?
アニメーション指定とかするととてもめんどくさい。
なんかWPF用のアニメーションを考慮したタブコントロールができたらいいのに・・・
0886デフォルトの名無しさん
2009/06/02(火) 11:41:13表示/非表示を切り替えるにはどうしたらいいの?
0887デフォルトの名無しさん
2009/06/02(火) 11:50:000888デフォルトの名無しさん
2009/06/02(火) 12:02:03即答ありがとう。これでいけそうだわ。
0889デフォルトの名無しさん
2009/06/05(金) 11:01:44ttp://data.blogdns.net/blog/2009/06/winfs.html
0890デフォルトの名無しさん
2009/06/05(金) 13:35:01スレチのようなスレチじゃないような・・・
そういえばAvalonってWPFの事だっけ?それともAero?Direct2D?
0891デフォルトの名無しさん
2009/06/05(金) 13:46:490892デフォルトの名無しさん
2009/06/05(金) 19:37:00ユーザーコントロールを作成した結果、
下記のワーニングが出力されました。
C:\Documents and Settings\onamae\Local Settings\
Application Data\Temporary Projects\DirComp\Ruler.xaml.cs
の型 'DirComp.Ruler' は、
c:\Documents and Settings\onamae\Local Settings\
Application Data\Temporary Projects\DirComp\bin\Release\DirComp.exe
のインポートされた型 'DirComp.Ruler' と競合しています。
C:\Documents and Settings\onamae\Local Settings\
Application Data\Temporary Projects\DirComp\Ruler.xaml.cs
で定義された型を使用しています。
C:\Documents and Settings\onamae\Local Settings\
Application Data\Temporary Projects\DirComp\Ruler.xaml 4 26 DirComp
Rulerと言うユーザーコントロールは、
DirCompと同一アセンブリとなっています。
競合を解決したいのですが、どのように回避してよいかわかりません。
良い解決方法がございましたらお教えいただけますでしょうか・・・。
0893デフォルトの名無しさん
2009/06/06(土) 22:27:32といった感じで書くと、”Mode は、RelativeSource に対して指定される必要があります。”というエラーが出ます。
しかし、ビルドはなぜか成功しますし、一回ビルド通るとエラーが消えます。
これは何が原因でしょうか?
0894デフォルトの名無しさん
2009/06/06(土) 22:46:07似たような現象はあちこちで起きていない?
0895デフォルトの名無しさん
2009/06/06(土) 23:41:37ViewModel 同士で状態の変化を伝えたい場合、
お前らどうする?
1.すでに INotifyPropertyChanged を実装しているのだから、それを使う。
2.OnXXXXChanged みたいな event を実装する。
という2種類の方法が考えられると思うんだが、
前者はすでに実装されているから、手間は少ないがどのイベントが変更されたか
文字列で判定するのでパフォーマンス的に不利。
後者は高速だが実装が手間。
だから、パフォーマンスが問題にならない場合は前者を
使っておけばよいという認識であってる?
0896デフォルトの名無しさん
2009/06/06(土) 23:56:25自分も悩んだけど、
ViewModelはモデルにかぶせて、ViewのためのI/Fを提供するもの
=ViewModelはそれぞれがモデルを操作。必要ならモデルの状態変化を受け取ってViewModelも変化
ってことで、直接ViewModel同士でのやりとりは避けていた。
可能性としては、モデルを介さずにViewModelの表示用データ(編集中のデータとか)間で
やりとりが生じる場合も考えられるけど、そんな状況ならそもそもViewModelを分離する必要があるのだろうか。
これに限らず、ViewModelは、Viewに合わせるために作りが汚くなりがちだし、
処理が散らばりがちだし上手くまとめれんw
0897デフォルトの名無しさん
2009/06/07(日) 00:30:17なるほど、そういう事でしたか・・・。
確かにインテリセンス、頻繁に出なくなったりします。
結構この機能に頼ってる自分には辛いですw
0898デフォルトの名無しさん
2009/06/07(日) 01:11:42プロジェクトにインポートして使用したいと思っています。
対象プロジェクトをインポートして参照設定行いましたが、xmlns:n="clr-namespace:XXApp"
のように名前空間を設定しても利用できませんでした。
CLR 名前空間が定義されていません。clr-namespace URI が、
アセンブリに含まれていない名前空間 'XXApp' を参照しています。
との事でなのですが、どのように解決すればよいでしょうか?
環境は VS C# ExpressEdition です。
0899デフォルトの名無しさん
2009/06/07(日) 01:19:09どのアセンブリの名前空間をインポートするか指定しないといけない。
xmlns:sys="clr-namespace:System;assembly=mscorlib"
0900デフォルトの名無しさん
2009/06/07(日) 02:13:01ありがとうございます。
試してみましたが症状は変わりませんでした。
あとインテリセンスには、インポートしたいアセンブリの名前が
表示されないので、インポートの行い方がまずいのでしょうか・・・。
テストクラスをインポート対象のプロジェクトに書いて、
作業プロジェクトのC#ソースから名前空間を指定した場合は、
ちゃんと利用できていることは確認しました。
あと気になることがひとつあります。
VS C# 2008 ExpressEdition は、プロジェクトのテンプレートに、
「WPF ユーザー コントロール ライブラリ」が在りませんが、
このためインポート機能もカットされているとかあるのかな・・・。
0901デフォルトの名無しさん
2009/06/07(日) 17:16:14放置され無かったことにされるMSのテクノロジの山への葬列に加わる
ことになるのかいな。
ソフトウェア・アーキテクチャとしては考え方はよかったのかもしれないけれど、
なんだか分かりにくいよね。 ウェブアプリケーションまで飲み込もうと、xbapみたいな
もんまでスコープにしたもんだから、プログラマからすると、単に使い勝手が悪く
融通の利かない環境になってしまったような気がする。
0902デフォルトの名無しさん
2009/06/07(日) 17:18:58Silverlightは使われそうだけど、WPFはどうなるのかなー
0903デフォルトの名無しさん
2009/06/07(日) 17:36:090904デフォルトの名無しさん
2009/06/07(日) 17:38:54あとはMSがセキュリティの制限を解除できるようにしさえすればWPF完全終了
0905デフォルトの名無しさん
2009/06/07(日) 18:56:39DllImportとかは機能自体が削除されているのでどうにもならん。
0906デフォルトの名無しさん
2009/06/07(日) 19:25:54やっぱり見た目って大事だから
0907デフォルトの名無しさん
2009/06/07(日) 23:25:30上記のサンプルをビルドしたところ、
"〜\Resources.Designer.cs' を開くことができませんでした ('エラーを特定できません ')。
というようなエラーが出ました。
どのようにしたら実行出来ますでしょうか?
0908デフォルトの名無しさん
2009/06/08(月) 00:05:30特にビットマップフォントはかんけーねーよ。
海外でも普及してねーだろーが。
0909デフォルトの名無しさん
2009/06/08(月) 01:20:47XAMLがWPFの大きな魅力の一つなのに切り離してどうするw
0910デフォルトの名無しさん
2009/06/08(月) 21:15:040911デフォルトの名無しさん
2009/06/09(火) 11:06:090912デフォルトの名無しさん
2009/06/09(火) 11:33:310913デフォルトの名無しさん
2009/06/09(火) 11:44:59めんどくさくない?w
挑戦したんだけど、どうもうまくまとめられずいろんなところが狂いだしてどうすることもできなくなった・・・
気をつけてw
0914デフォルトの名無しさん
2009/06/09(火) 11:46:13・・・ある!
0915デフォルトの名無しさん
2009/06/09(火) 13:28:140916デフォルトの名無しさん
2009/06/09(火) 15:53:400917デフォルトの名無しさん
2009/06/09(火) 16:32:47って事で、ユーザーの邪魔にならない所でヒッソリ使う程度だな。
UIデザインをこなせるデザイナがもっと増えてくれれば、俺の付け焼刃のデザインなんて使わなくて済むのに
0918デフォルトの名無しさん
2009/06/10(水) 01:32:31参考書籍はどの順番で読めばいでしょうか?
(A)エッセンシャルWPF
(B)黒XAMLプログラミング
※赤坂本は破棄するとして、日向本も索引にDependencyが無いので論外とします。
またはMSDNの概説・サンプルの方が情報が新しく併用するのがいいのでしょうか?
0919デフォルトの名無しさん
2009/06/10(水) 04:28:06Aは一番最初。ただし、うんちくや背景思想を知りたい人だけが読めばいい。
0920デフォルトの名無しさん
2009/06/10(水) 07:11:560921デフォルトの名無しさん
2009/06/10(水) 07:58:15IsEnabled = false にしただけでは、灰色になってくれないのね。
DrawingImage を灰色にはどうしたらいいですか?
0922デフォルトの名無しさん
2009/06/10(水) 08:21:520923デフォルトの名無しさん
2009/06/10(水) 12:14:16いたら教えて欲しいのですが、P279(Chapter12 Validator)のとおりに
コードを入力し、説明にあるとおり同じ値を入力後、フォーカスを移動
してもデフォルトの赤枠が表示されません。他に設定が必要なのでしょうか?
<TextBox>
<Binding Path="Title">
<Binding.ValidationRules>
<ExceptionValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox>
0924923
2009/06/10(水) 12:19:50Win XP SP3
.NET3.5 SP1
です。
0925デフォルトの名無しさん
2009/06/10(水) 14:09:46はてなポイントつかって向こうで聞けばいいんじゃね?
0926デフォルトの名無しさん
2009/06/10(水) 14:24:28レスどうも。
そうですね、サポートページ探してみます。
0927923
2009/06/10(水) 16:04:410928デフォルトの名無しさん
2009/06/10(水) 16:44:530929デフォルトの名無しさん
2009/06/10(水) 17:00:51そうですね。
単なる操作の勘違いでした。
あるレコードを選択後、Titleテキストボックスに表示された
値を存在する別のレコードのTitle値に設定すればOKです。
0930デフォルトの名無しさん
2009/06/10(水) 22:41:40何か別にOffice風だとか○○風だとかのデータを持ったものを指定するだけとかの仕組みが有れば良さそう
0931デフォルトの名無しさん
2009/06/10(水) 22:47:19そういうのは、Blendでかくもんじゃない?
0932デフォルトの名無しさん
2009/06/10(水) 23:04:22まぁやっとこロジックごりごりかくべき所とXAML的にやるべき所の見分けが付いてきた
0933デフォルトの名無しさん
2009/06/10(水) 23:44:32そういう仕組みは既にあると言っていいと思う。
ttp://d.hatena.ne.jp/Yamaki/20061106/1162787221
まあ、誰がテザインを作ってくれるのかというのが問題だけど。
0934デフォルトの名無しさん
2009/06/11(木) 11:34:37長期的にはWPFに全面移行するのかな
0935デフォルトの名無しさん
2009/06/11(木) 11:39:40そうでないなら好きなほう使えばいい。
0936デフォルトの名無しさん
2009/06/11(木) 12:03:062000では動かないの?98は無理だけど。
0937デフォルトの名無しさん
2009/06/11(木) 12:23:402000には.NET 2.0までしか提供されない。
という事で、WPFだけじゃなくてLINQなんかも使えない。
0938デフォルトの名無しさん
2009/06/11(木) 13:13:04なるほど、そうなんだ。
thx
0939デフォルトの名無しさん
2009/06/11(木) 20:27:53ただのPFで良かった
0940デフォルトの名無しさん
2009/06/11(木) 23:35:05まさにそういう理由で、客のユーザーが2000使ってる人まだいるってことで.NET2.0しばりですよ・・・
0941デフォルトの名無しさん
2009/06/12(金) 00:00:51<Image Margin="0" Name="img"></Image>
こんな感じでImageタグを用意しておき、img.Sourceを変更させてやろうと思っているのですが、画像が表示されません。
ウィンドウをShowする前にimgにソースをセットしておけば、その画像だけは表示されるのですが、それ以外は表示されません。
ソースを変更→スレッドで5秒ぐらいとめるなどという処理方法で書いているのですが、どこに問題があるのでしょうか?
どなたか分かる方よろしくお願いします。
0942デフォルトの名無しさん
2009/06/12(金) 00:17:41これがなんか怪しくないか?
0943デフォルトの名無しさん
2009/06/12(金) 00:19:210944944
2009/06/12(金) 00:49:57スレッドが怪しいということなので、とりあえずスレッドを使わずに実験してみたのですが、
それでも画像の更新がうまくいきませんでした。
今使っているコードはこのようになっています。
BitmapImage bmp = new BitmapImage(new Uri(image_paths[0]));
img.Source = bmp;
this.Show();
for (int i = 1; i < img_paths.Length; i++)
{
bmp.UriSource = new Uri(img_paths[i]);
img.Source = bmp;
// Thread.Sleep(5000);
}
this.Show()はスライドショーは作業ウインドとは別ウィンドウでやろうと考えているため、このようになっています。
0945デフォルトの名無しさん
2009/06/12(金) 01:22:52質問する前にMSDNに載ってるサンプルコードぐらい読め
0946デフォルトの名無しさん
2009/06/12(金) 01:29:071以上だったら true を設定したいんだけど、IValueConverter
を自分で実装するしかない?
それとももっといい方法ある?
0947デフォルトの名無しさん
2009/06/12(金) 01:41:350948デフォルトの名無しさん
2009/06/12(金) 01:54:130949デフォルトの名無しさん
2009/06/12(金) 19:35:55とかがよくわからない
0950デフォルトの名無しさん
2009/06/12(金) 20:53:470952デフォルトの名無しさん
2009/06/13(土) 00:13:030だったらfalse、1以上ならtrueってことは
結局、0か否かなんじゃねえのか?
0953デフォルトの名無しさん
2009/06/13(土) 01:56:05だから、XPでメイリオが使えるようになったのだろう。
0954デフォルトの名無しさん
2009/06/13(土) 13:04:170955デフォルトの名無しさん
2009/06/13(土) 20:58:370957デフォルトの名無しさん
2009/06/16(火) 12:03:20参考にしたいんだけど、どいつも海外産で登録制の物しかないし、参考にするものが無い
0958デフォルトの名無しさん
2009/06/16(火) 14:01:230959デフォルトの名無しさん
2009/06/16(火) 15:29:01MiniTwitterとか、O2Handlerとか
0960デフォルトの名無しさん
2009/06/17(水) 14:53:570961デフォルトの名無しさん
2009/06/17(水) 23:13:160962デフォルトの名無しさん
2009/06/17(水) 23:19:500963デフォルトの名無しさん
2009/06/17(水) 23:53:51まあテーマ適用すりゃいいんだけど
0964デフォルトの名無しさん
2009/06/18(木) 01:21:39選択時のスタイルとかもうちょっと簡単に設定できていいと思うんだ
0965デフォルトの名無しさん
2009/06/18(木) 08:54:14確かにアーキテクチャの着想は悪くないと思うけれど、こんなに使いにくいもん
普及するわけがない。そもそもxamlで何でもかんでも「簡単に」やろうとしすぎて
複雑かつ難解な仕組みになってしまったような気がするよ。
0966デフォルトの名無しさん
2009/06/18(木) 09:01:20俺が何回もxamlと切り離して普及させるべきだって主張してるのにこのスレのやつらは
メリットがなくなるとかいいだすんだよ
まったく困ったチャンたちだぜ
0967デフォルトの名無しさん
2009/06/18(木) 12:24:37普及って、開発者に対してだろ?
解説ページでも本でも好きに書いて啓蒙したらよいのでは?
0968デフォルトの名無しさん
2009/06/18(木) 12:46:53なってる気はする。
0969デフォルトの名無しさん
2009/06/18(木) 13:39:28XAMLと切り離すとかアフォかとwww
って内容のレスを以前もした気がする。
お前は何度同じ話を書けば気がすむんだ?
まったく困ったチャンたちだぜ
0970デフォルトの名無しさん
2009/06/18(木) 18:09:54将来もWPFという名前のままか分からんが、実装度合いが進めば
ある程度、浸透はするだろ
0971デフォルトの名無しさん
2009/06/18(木) 18:17:02徐々にWPFに移行するだろう。
0972デフォルトの名無しさん
2009/06/18(木) 18:18:370973デフォルトの名無しさん
2009/06/18(木) 18:55:20財団では普及しないですね
0974デフォルトの名無しさん
2009/06/18(木) 19:19:13もしかして原文読まずに、そのトンデモ翻訳を元にそう書いてるのだったとしたら
ちょっとおバカちゃんすぎるだろ。
ちなみに原文の内容は、WPFのある解説本の初版は
.NET3.0をベースに書かれていてお勧め出来るものではないが
第2版は.NET3.5を対象に多くの点で書き直されており、
お勧めだぜ!とかそんな内容。
0975デフォルトの名無しさん
2009/06/18(木) 21:52:350976デフォルトの名無しさん
2009/06/18(木) 22:08:010977デフォルトの名無しさん
2009/06/18(木) 22:10:35そういう感じの作った。
Form上だけど好きなエレメント組み合わせて描画できるようになってよい感じ。
MDXに乗っけられればBitmap転送速くなりそうだ。
0978デフォルトの名無しさん
2009/06/18(木) 22:12:43第二段階:xaml普及
ってやればいいんだよ
まったく困ったチャンたちだぜ
0979デフォルトの名無しさん
2009/06/18(木) 22:31:422chで「俺だったらこうするね!」と主張する事に何の意味があるのだろうか。
馬鹿なの?暇なの?困ったチャンなの?
0980デフォルトの名無しさん
2009/06/18(木) 23:47:050981デフォルトの名無しさん
2009/06/19(金) 00:17:530982デフォルトの名無しさん
2009/06/19(金) 00:18:42今から作るならDirect2Dに乗せようぜ
0983デフォルトの名無しさん
2009/06/19(金) 02:01:19DirectX使うならWPFベースでいいだろ
0984デフォルトの名無しさん
2009/06/19(金) 08:10:03とりあえずもう9割がた作ったが、Formをただのキャンバスとして扱ってるだけなのでそのうちD2Dとかにのせるかも。
もうすこしWPFに普及の兆しがあればこんなの作る必要もなかったんだが・・・兆しというかパフォーマンスだな。
いろいろ柔軟に複雑なことできそうだけど、一般ユーザーに使わせるシステム作るには対象が限定されすぎ。
Silverlightの方がいろいろと広まりそうだ。そこからWPFも見直されてきそうだけど。それらに全面的に切り替えが許容されるには後1,2年はかかりそうだな・・・(´・ω・`)
0985デフォルトの名無しさん
2009/06/19(金) 08:49:11まだまだXPは切れない。
0986984
2009/06/19(金) 08:56:420987デフォルトの名無しさん
2009/06/19(金) 08:58:43DirectXに載せるならXNAとかMDXとか使ったゲームなどへの組み込みをターゲットにしたら?
まだそれなら需要あるでしょ
0988デフォルトの名無しさん
2009/06/19(金) 09:00:400989984
2009/06/19(金) 09:08:39趣味でゲーム作るときには使うかもしれんが。
MDXはも一度復活してくれんかなー
Windows7で2D描画速くなるらしいがあれはDirect系とは別物なのかね?
0990デフォルトの名無しさん
2009/06/19(金) 09:15:26Direct2Dはそれに皮を被せただけ
0991デフォルトの名無しさん
2009/06/19(金) 11:28:35http://code.msdn.microsoft.com/WindowsAPICodePack
まぁMSがこのライブラリを今後どういったかたちで提供してくるのかは知らんが。
0992デフォルトの名無しさん
2009/06/19(金) 13:08:49http://pc12.2ch.net/test/read.cgi/tech/1245384489/
0993デフォルトの名無しさん
2009/06/19(金) 16:57:140994デフォルトの名無しさん
2009/06/19(金) 18:14:17そうそう、WPFの描画にDirect2Dを使いたいけどXPで使えないから……、という話もあったみたい。
http://blogs.msdn.com/hiroyuk/archive/2008/10/31/9026003.aspx
0995デフォルトの名無しさん
2009/06/19(金) 18:24:37WPF4.0の次ってことになると、
さすがにそろそろXP自体が切られる可能性もありそうだが。
0996デフォルトの名無しさん
2009/06/19(金) 22:30:020997デフォルトの名無しさん
2009/06/19(金) 23:21:030998デフォルトの名無しさん
2009/06/19(金) 23:43:400999デフォルトの名無しさん
2009/06/20(土) 01:06:55すばらしい。時間で着たら見てみる。
>997
おまえはその前のWndProc,MFCを見たことがあるのかとこ一時間
1000デフォルトの名無しさん
2009/06/20(土) 01:18:06WPFが使い物にならないと証明される
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。