問題タブ [windows-community-toolkit]
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# - uwp adaptGridView が OneRowMode で例外をスローする
uwp コミュニティ ツールキットの適応グリッドビューで次の例外が発生しています
「System.ArgumentException: 値が期待される範囲内にありません。\r\n Windows.UI.Xaml.FrameworkElement.SetBinding(DependencyProperty dp, BindingBase binding) で\r\n Microsoft.Toolkit.Uwp.UI.Controls. AdaptiveGridView.DetermineOneRowMode()\r\n at Microsoft.Toolkit.Uwp.UI.Controls.AdaptiveGridView.OnLoaded (オブジェクト センダー、RoutedEventArgs e)"
XAML
プロパティOneRowModeEnabledがTrueであるためにエラーが発生し、そのプロパティを削除すると正常に動作し、アプリの実行後にこのプロパティをtrueに設定すると、アプリの実行中に例外は表示されず、グリッドビューは1行に移動しますモードにします。
また、アイテムソースを初期化するコードビハインドを推奨しようとしたため、コードビハインドも問題ではありませんが、この例外は引き続き発生します。
c# - uwpのランダムなサイズのサムネイルは、adaptiveGridViewを醜く見せます
私のアプリでは、ビデオ ファイルのみのサムネイルを取得しています。UIに表示するために、uwpコミュニティツールキットのAdaptiveGridviewを他のファイルプロパティとともに使用しています。
問題:
- 一部のファイルは null サムネイルを返すため、BitmapImageにStoreLogoを入力してから、UI の Image にバインドする必要があります。StoreLogo はサイズが大きいため、画面上では非常に奇妙に見えます。
- 他の一部のファイルは、比較的大きなサムネイル サイズを返すため、UI で奇妙に見えます。
- storeLogo と大きなサムネイルはどちらもより多くのスペースをカバーするため、UI からビデオ ファイルのタイトルを非表示にします (画像の高さと幅は自動であり、AdaptiveGridView で応答する必要があるため)。
期待
3 つのケースすべてで同じサイズのサムネイルを取得できるソリューションを作成したいと考えています。通常のサムネイル、大きいサムネイル、ストアロゴの代替。そして、それらすべてを均一に塗りつぶし、デバイス画面の PPI に従ってスケーリングする必要があります。
試した
私は BitmapImage オブジェクトにデコーダーのピクセル高さと幅を設定しようとしましたが、それは画像のサイズを修正し、ユーザーにとって見栄えの悪いくびれたように見えます。UIの画像に固定の高さと幅を設定することで実現できることはわかっていますが、適応グリッドビューに従って応答しません。
コード
XAML
<...スタイル...>
BitmapImageを取得する関数
コード Image 要素に値を代入する
アップデート
問題を示す 2 つのスクリーンショットを次に示します。
- スクリーンショット 1 : 左下隅に赤い矢印でマークされたサムネイルを表示すると、他の通常のサムネイルよりも高さが高くなるため、他の要素 (ビデオ ファイル名やその下にあるその他のもの) と重なっています。
- スクリーンショット 2 : 同じ種類の問題を示しています。2 つのサムネイルが null を返したため、アセットから StoreLogo.png に置き換えられ、同じタイプの醜い UI も表示されています。
これら 2 つのシナリオを修正し、画像のサイズを他のすべての通常のサムネイルとまったく同じにしたい (スクリーンショットに示されているように)。