問題タブ [windows-store-apps]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - WinRT 画像処理
友人と私は、昨夜の大部分を地下鉄アプリでいくつかの画像を操作しようとして髪を引き裂くところだった. 共有チャームを使用してアプリに画像を取得した後、画像をトリミングして appdata フォルダーに保存し直すなど、他の作業を行いたいと考えました。これは非常にイライラさせられました。
私の質問は、これらすべての最後に、「ミスマッチのジグソー パズルのピースをたくさん組み合わせているように感じずに、これを行う適切な方法は何ですか?」ということになります。
アプリで複数の画像を共有する場合、それらは のリストとして表示されWindows.Storage.StorageFile
ます。これを処理するために使用されるコードを次に示します。
オンラインで検索したところ、現在、Windows.UI.Xaml.Media.Imaging.WriteableBitmap
画像内のピクセル データにアクセスできるのは a だけであることがわかりました。この質問には、画像をファイルに保存するための拡張メソッドが満載の役立つ回答が含まれているため、それらを使用しました。
後でファイルを再度開いてみたとき、私たちの問題は最悪でした。私は前に似たようなことをしました:
ここで問題が発生します。バイトを取り出したい場合、このストリームの長さはどれくらいですか?
もう一度試してください。
これは機能しますが、画像が圧縮されている場合、ストリームは予想よりも短いため、最終的に範囲外の例外が発生します。ここでは、圧縮されていないビットマップのふりをします。
まあ何を推測します。データを読み込むように言いbitmap.SetSource(fileStream);
ましたが、バイト配列はまだゼロでいっぱいです。理由がわかりません。これをbitmap
サンプル データ グループを介して UI に渡すと、画像は問題なく表示されます。そのため、そのビットマップのピクセルデータは明らかにどこかにありますが、それを読み取ることはできませんbitmap.PixelBuffer
か? なぜだめですか?
最後に、実際に機能するようになったのは次のとおりです。
これで画像データができましたが、まだ大きな問題があります。それを使って何かをするためには、そのフォーマットについて仮定をしなければなりません。それが rgba、rgb、abgr、bgra のどれであるかはわかりません。私が間違っていると推測すると、私の処理は失敗します。properties
何十回ものテスト実行で、ゼロバイトや破損した画像、逆さまの画像 (???)、間違った色などを吐き出しましたawait file.Properties.GetImagePropertiesAsync();
。幸運。これには、画像の幅と高さ、およびその他の役に立たないものだけが含まれています。ここに最小限のドキュメント。
では、なぜこのプロセスはとても苦痛なのでしょうか? これは現在のライブラリの未熟さを反映しているだけで、改善されると期待できますか? または、これを行う標準的な方法がすでにありますか?のように簡単だったらいいのにSystem.Drawing
。これにより、必要なすべてのデータが得られ、自分でストリームを処理することなく、あらゆる種類の画像を正しくロードできました。
.net - Windows ストア アプリでの画像の保存
2 つのボタンとイメージ コントロールがあります。
最初のボタンをクリックすると、以下に示すように画像をロードしようとしています。
2番目のボタンをクリックすると、同じ画像にいくつかの変更を加えた後、その画像を写真ライブラリに保存する必要があります。
これは私がやろうとしていることであり、画像コントロールに既に読み込まれている画像を取得して保存する方法が混乱しています。
windows-runtime - winrt でイベントをビューモデルに接続する (metro スタイル アプリ)
動作は、メトロ スタイルの winrt アプリには存在しません。ビューからビューモデルへのイベントに接続しようとしています。jarrey によるcodeprojectに投稿があります。誰もこれを以前に使用したことがありますか?持っている場合、私の質問は次のとおりです。イベントをフックできますか? コマンド バインドがボタンのクリックに対してのみ利用可能になる前。
eventtocommand 以外のイベントを接続する方法がある場合は、遠慮なくコメントしてください。
c# - Windows 8 Metro の録音オーディオ (フィルター ノイズ、ピッチの変更)
人が話しているときだけ音声を録音することはできますか? マイクを聞きたいのですが、「音量」がノイズレベルよりも大きい場合 (誰かが話していることを意味します) にのみ録音を開始したいのですが、録音されたオーディオのピッチも変更する必要があります。
C# で MediaCapture クラスを試しましたが、サンプルの StartRecordToStorageFileAsync は私のシナリオでは使用できません。Windows Phone では XNA を使用していますが、Windows 8 で同様の API を見つけることができません。
wpf - デフォルトのテーマ ディクショナリを取得するにはどうすればよいですか
Metro アプリケーションは、一連の既定のテーマ リソース ディクショナリを使用します。
これらの辞書を見る方法はありますか?
wpf - Windows ストア アプリ アプリの DynamicResource?
DynamicResource に対する WPF のサポートは優れています。これにより、ユーザーは実行中のアプリケーションの外観を変更できるからです。
ただし、WinRT は DynamicResource をサポートしていません。
ユーザーが UI テーマを動的に変更できるようにするアプリを作成するには、どのような方法が推奨されますか?
c# - アプリに合わせて既定の WinRT システム ブラシ/パレットの色を変更/「再バインド」できますか?
このようにするのがベストプラクティスでしょうか?
たとえば、HyperlinkPointerOverBrush
濃い青/緑を定義します。これは、マウス/「指」がリンクの上に置かれたときにアプリが継承するデフォルトのブラシの色です。しかし、濃い青/緑からの色の割り当てを別のものに簡単に変更できますか?
(以下は、私のアプリが参照しているシステム ブラシのリストを示しています)
HyperlinkPointerOverBrush
私は自分で別のものに設定しようとしましたApp.xaml
:
私のメトロアプリ内で、しかし役に立たなかった。私のリンクはデフォルトの濃い青/緑のままでした。
これにどのようにアプローチするかについて何か考えはありますか?また、アプリのシステム ブラシ (別名) を定義するためのベスト プラクティスもあります。Windows 8 の Metro スタイル WinRT アプリで使用したい "Palette" はありますか? (それは一口です)
ありがとう。
c# - リストです.ForEach()メソッドはなくなりましたか?
私は最近Windows8メトロに手を出し始めましたが、私の古い仲間の1人が行方不明になっているようです。
.ForEach()
私は従来の構成よりもこの方法を使用する傾向がありforeach()
、この方法が利用できないことにすぐに気づきました。たとえば、このコードはメトロアプリではコンパイルされません。
私はこれについての議論を見つけることができるかどうかを調べましたが、見つけることができませんでした。私はただ鈍感なのですか、それとも実際になくなったのですか?
c# - ファイルをmetro-style-appのインストールディレクトリにコピーします
ファイル(filepickerで選択)を現在実行中のメトロスタイルアプリのinstalldirにコピーする方法はありますか?次のコマンドでInstallationFolderを取得しようとしました。
しかし、InstalledLocationを取得している間、常に次のエラーが発生します。
Error HRESULT E_FAIL has been returned from a call to a COM component.
これは、アプリのデバッグ/ストアからインストールしない場合の問題でしょうか?この例外を修正するにはどうすればよいですか?
ファイルのコピーは。で可能である必要がありますWindows.Storage.CopyAsync(IStroageFolder, ...)
。InstalledLocationはタイプからStorageFolder
です。それが許可されている場合、誰かが何らかの経験を持っていますか、それとも私はsthを取得しますか?セキュリティ例外のように?