WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
■ このスレッドは過去ログ倉庫に格納されています
Windows Presentation Frameworkについて語るスレ。
前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part21
http://mevius.2ch.net/test/read.cgi/tech/1494288553/
関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/ MediaElementのメディアの時間て
NaturalDurationに入ってくると思うのですが
ミリ秒まで入りません。
末尾までスキップとか中途半端なのですが
何かいい方法はありますか? MSは同じような枠組みを違った環境向けに少しずつ異なる実装を
バカバカ作りやがる MVVM方式で、ボタンを10個作ったら、それぞれに対応するCommandクラスを10個作らないと動かないの? senderとかで分岐しちゃダメなの?
CommandParameterとかにユニーク値いれるとか CommandParameterを利用して検討してみます。
ありがとうございます。 つか、ICommandじゃなくてPrismやReactiveProperty使うのが一般的だよな
使えない現場もあるかも知れんが DelegateCommandとReactiveCommandってどっちが使いやすい?
そんなに変わらん? >>600
new BusyNotifier().Select(x => !x).ToReactiveCommand().AddTo(Disposable);って生成すれば、何も考えずに二度押し防止出来るのがメリットで
IDisposableの実装が必要なのがデメリット
ReactiveProperty使っているならそっちで実装するから手間は変わらなくなるが >>601
なるほど二度押し防止はよく使いそう
ReactiveProperty使い始めたんだが
ReactiveCollectionのItem数によってReactiveCommandを許可するかってのをどう書いていいかわからん ReactiveCollectionのitem数によってtrue/falseに変化するReactivePropertyを作って
そこからToReactiveCommand()でReactiveCommandを作ってやればいいはず。
ReactiveCollectionの変化を直接捕まえられたかは忘れた。
ダメだったらそのReactiveCollectionに変化を引き起こし得る操作のところで
ReactivePropertyをメンテしてやる。 https://qiita.com/YSRKEN/items/5a36fb8071104a989fb8
ここ読むとReactiveProperty使っても
INotifyPropertyChangedも合わせて使わないとメモリーリーク防げないと読めて
ReactivePropertyを使うことに対するメリットがイマイチ理解できないのだけど、
やっぱり便利なの? >>603
そうそうこの直接捕まえることができるのか調べてもわからなかった
確かにitemsを操作するところでもいいんだけどね 手元のコード探してみたらそのまんまCollectionChangedAsObservable()でよかったみたい。 >>604
や、そうじゃなくてINotifyPropertyChangedインターフェースの実装がアレばいいってことだから
prismなら従来VMを書くときと同じようにBindableBaseを継承すればいいということのようだ
それを省略ならIDisposableを実装してしっかりDisposeすりゃいいってことだ >>606
ありがとう拡張メソッドでitemsの変更が拾えました
CountをReactivePropertyにしてCommandのtrue/falseも変更できました パート22だけど去年はとうとう1スレも進まなかったのね デスクトップしか使わんから勉強するモチベ的につらい
たまにこのスレ覗くくらいだわ 二年くらい前に既にピークアウトしたよ
天保山くらいのピークだったけど UserControlでマウスのクリックを
<UserControl.InputBindings>
<MouseBinding Gestus="LeftClick"・・・>
のようにして取得できるんだけど
<Grid VerticalAlignment="Bottom">
このGridはクリックを通したくない場合ってどうするのが正解なんでしょうか? >>616
正解かどうかは知らないけどPreview系のイベントでハンドリングして以降では処理しないようにするとかはどう? >>617
なるほどそういう方法があったか
PreviewだとGridに置いたButtonとかが拾えなくなるので
MouseLeftButtonDownでマスクしたところ
うまくいきました
さんきゅー >>618
あ、そうか。この場合は下に伝えたくないからPreviewじゃないほうか…。
うまくいって良かったよ。 2008年以降に始めたプログラマもWPF使わずwinform使ってんだろうな。 >>620
三年前にC#はじめたけどWPF使ってるよ
もともとHTMLさわってたからUIがXMLで書けるのが好み >>623
それって結局、JavaScriptでプログラミングになるんじゃ? Desktop Bridgeってのを試しているんだが、sqlite.interop.dllってのが実行フォルダにコピーされないんだが
対策ありますか?手動でコピーすれば大丈夫のようだが(パッケージ化はこれから) Windowsアプリケーションパッケージングプロジェクトだつけ?それ使うといいよ >>628
残念ながら、そいつ使っているんだが上手く行っていません
sqliteのパッケージはsqlite.interop.dllがx86とx64の切り替えをやっていて
.netのbinフォルダでx64,x86のサブフォルダ上にインストールされるんだが、
そのフォルダが「Windowsアプリケーションパッケージングプロジェクト」のbinにコピーされません >>629
苦肉の策としてはWindowsアプリケーションパッケージプロジェクトのコンテンツとしてsqliteまわりのdllを入れておくとかかな
プロジェクト内でのフォルダ構造そのままコピーされるからWPFプロジェクト名のフォルダを切って、その下にsqliteのdllを配置してほしいレイアウトで置く感じ
ストアに出すならもう少し頑張らないといけないけどサイドローディングならそれだけで行けると思う WPFかあ、もはやそんなのあったなあ、って感じだな。
たぶんもう日本の業務アプリは、もはや21世紀中はWindows Formsが主流のままだよ。
事務ソフトでアニメーションなんかあっても、ウザいだけ。 >>631
べつにアニメーションがWPFの特徴なわけじゃないと思うが >>632
メトロUIという非常にユーザから嫌われたUIを使えるのが特徴だな。 >>632
でもWimdowsフォームとWPFの違いって、ユーザーから見たらアニメーションぐらいじゃね?
>>633
ASP.NETも枯れてていい感じだね! でも俺は、ブラウザ アプリは遅いので好きじゃないんだ。
マルチ プラットフォーム環境の、不特定多数へのサービスならブラウザ最高! だけどね。 >>634
WPFとMetroは無関係だが
なんでそんな程度の知識しかしない煽り虫がこのスレに棲息してんだ? >>636
横からだけど、Windows 8が出たときに、メトロUIのWindows Store アプリを作ることが
WPFの目的だった時代があったような。。。それでみんな、ちょっとかじってやめていった。
もう6年前の話なので、あのわずかな期間を、どれほどの人が覚えているか知らないが。 4Kモニターユーザーとしては、WPFアプリは標準で高DPIに対応してるのが良い。
何もしなくてもSystem DPI Awareで、Per monitor DPI Awareにするのも簡単。 >>635
ユーザーから見たら同じとか言い出したら中身がC++でWINAPIベタ書きでもPythonかなんかでTcl/Tkで書いても全部一緒ってことになるだろうが
作り手にとって違うなら十分違うんだよ >>637
> 時代があったような
ないです
そんなわけのわからん記憶をどこでねつ造してきたの… WPF登場から13年。
Windows95発売からWindows7が発売されるまでが14年。
こんだけ経って普及してないんならもう普及は無理だわ。 メトロUIこそWPFの真骨頂なのに何言ってんだか。WPF開発者がそう言ってるだろ。 普及するとか普及しないとかいうより、新しいWindowsアプリなんてほとんど登場してないだけだろ。WPFとかWinFormsとかあんま関係ない。
マウス入力のUIの既存ので間に合ってて誰も新しく作らない。 マウス入力に最適化されたUIのアプリは既存のデスクトップアプリで間に合っててほとんど誰も新しく作らない。
だからWinFormsとかWPFとかそれ以前の問題。社内アプリとかでぼそぼそ作ってるところとかもあるかもしれんが。 タブレットと同じソースが使える筈だったザマリンを
自分達で潰したから普及する訳無いでしょうな >>630
WAPのバイナリに手動コピーするとしっかり配置してくれているようだから
当座はそれで凌げそうです
sqliteかVSかどちらかのバグだろうから、そのうち解消されるまで待つことにします
しかしWAPでX64選択しても店子のWPFプロジェクトはAnyCPUが選択されるため
WAPのバイナリは32bitのwpfバイナリイメージになっていたのはびっくりしたわ
(構成マネージャーで手動修正可能だが) >>644
MetroStyleしようと思ったらOSS入れないと駄目なくらいWPFでは組み込みサポートないよ
Windows8ではWindows Runtime上で動くWindows Store Appが追加されてたけど、それと勘違いしてる? そうではなくてWPFとXAMLを勘違いしてるんではないですか??? あの不人気なフラットデザインをメトロって言うんだよ。
VSで言えば、VS2010から採用された悪評高いのっぺりデザイン。 windows95から24年も代わり映えのしないデザインより遥かにマシじゃね? >>653
> メトロって言うんだよ
> VS2010から採用された
言いません >>654
進化してればいいんだが、見た目が変わっただけというのは害悪しかない 僕のアダナを 知ってるかい メトロUIと いうんだぜ
デマを流して もう三月 雨や嵐にゃ 慣れたけど〜 WPFがメトロUIだと言いだす馬鹿はほっとけばいい >>664 ←十分条件と必要条件が理解できない典型的馬鹿文系の例 >>661
ここにこう書いてあるとソース貼れば良いのでは? >>666 ←ところで誰でも知ってることを必死にID代えながら全否定してる馬鹿は何者? >>667
ソースを貼れば黙らせられるんじゃない?
俺もグラデとボーダー抑えただけのフラットデザインをメトロと呼んでいたなんて初耳だけど ID:sLZ546NU\
ノ)人(\ フ
人(へニフ )人 )
へ ( 〈●) ヘ)ノイ
Y Y /// ̄ (●/ノ
ヽノ _ノ~|
_ノ / ̄\ / <ボクが一番WPFに詳しいんだ!!!
――、_\二ノ /
/ / イ/ ̄/ >>669
イヤそちらの方が詳しいから主張しているのでは もしかしてwikipediaのこれをみてWPF=メトロって解釈したの?
ttps://ja.m.wikipedia.org/wiki/Windows_Presentation_Foundation
>Windowsストアアプリ
>Windows 8/Windows RTにおいて導入されたWindowsストアアプリ(WinRTアプリ、Modern UIアプリケーション)はWPF同様XAMLによって
>ユーザインタフェース要素を記述し、WPFに類似したプログラミングモデルを提供する。Windows 10においてWindowsストアアプリの後継として導入された、ユニバーサルWindowsプラットフォーム??(Universal Windows Platform, UWP) アプリケーションも基本は同様である。 Windows8の開発には普通vs2012がいるからねぇ
その時点で駄法螺でしょうな VS2010って急に重くなってヘルプが使い物にならなくなったバージョンだな。
そしてドキュメントも整備されなくなった。そして記念すべき.net4というアホバージョンが登場。
以後の.netの仕様は互換性は皆無、仕様は右往左往、排他仕様、切捨ての嵐となった。
サポートには苦情の嵐でどうにもならず、多くをオープンソース化してユーザに丸投げ。
この辺りだな、MSの技術力が急低下したのは。 ホラVS2010がメトロとかわけわからんこと言うから
おじいちゃんが発作起こしちゃったでしょう >>678
そんなに騒ぎになった記憶がないから該当レス書いた人の個人的なお気持ちだと思う >>652
同一視してる可能性は否めない。
WPFもWin8アプリもWin10アプリもXAML使ってるが、ライブラリもランタイムも違う別物。 結局WPF is Metroさんは勘違い以前のただの釣りだったのけ?
煽りにしても意味わからんしもともとMetroの定義も曖昧だから
なんか説明してくれると思ったのになあ RenderTargetBitmapをpngやbmpファイルに落とすと
1920*1080とかになると一秒くらい掛かってしまうんですが
もっと速くする方法はないでしょうか? >>683
WPFではなくSystem.Drawingを使う >>684
ありがとうございます。
調べてみます。 VS2010のデザインをメトロだと言い張る無知なバカはもう消えたのか? そういやパスの長さ260文字の呪いは解消されては居るが、
都合で隠し機能になってレジストリ弄らないよ有効にならないんだよな MSの中ですらもう粗大ゴミ、時代遅れのガラクタWPFはどうするんだろ? WPFスレがまだあったか。こんなもの普及しないと思ってたけどまさかPart22まで伸びてるなんて。
随分と普及してたんだなw ■ このスレッドは過去ログ倉庫に格納されています