スキップしてメイン コンテンツに移動

投稿

4月, 2023の投稿を表示しています

DataGridの高さが自動では縮小しない

WinUI3のDataGrid(CommunityToolkit)の話 現象 セル中のTextBoxでAcceptReturnsなどを設定し複数行に対応出来る状態にする。その状態で複数行入力するとセルの高さが自動で拡大していく。ここまでは直感的な動作。 一方でその文字列を削除していっても セルの高さは自動で縮小したりはしない 。 直感的にはTextBox中の行が減るとTextBoxの表示域も減ると思うが、そうはなっていない。WPFやFormsはおそらく自動で縮小したと思うのでCommunityToolkitの実装上のチョンボだと思う。 検討 デバッガでセル中のTextBoxなどUI要素のサイズを確認してもAuto(double.NaN)のまま。したがって、セルの要素が広げているわけではなくてDataGridのRow側が広がったままになっているっぽい。 ただそうなるとDataGridの特定行のサイズは果たして変更できるのか、出来たとしてどうやって? ChatGPTに聞いた答えを動作するように修正したのが以下のアイデア。実際にはItemsSourceがリセットされる兼ね合いで選択セルが飛ぶので違和感が大きい。 private static void ResetRowHeight(this DataGrid grid) { var itemsSource = grid.ItemsSource; grid.ItemsSource = null; grid.ItemsSource = itemsSource; } ただ、考え方としては参考になるところがあって、要はDataGridに表示域の再計算を迫れば良い。 対策 発掘されたのが以下の投稿。 DataGrid Row Auto-Resize only grows row height but won't shrink (microsoft.com) 2008年のSilverliteの話らしいけど、Microsoft.Toolkit.Uwp.UI.Controls.DataGridでも有効な対策だった。まぁ、若干ちらつくところはありますが…、及第点でしょう。 private static void ResetRowHeight(this DataGrid grid) {

KoeMill V.0.9.0.0 リリース

KoeMillのV.0.9.0.0をリリース KoeMillは、音声認識による文字起こしを行うソフトウェアです。音声認識モデルにはWhisperが採用されており動画や音声から自動的に高品質な文字起こしができるため、煩雑な手作業を省くことができます。 オフラインで動作するため、ネットワークの遅延などによる遅れやプライバシーに関する懸念もありません。また、GPUを利用することで高速な処理を実現します。 ダウンロードページ

OCRの行の間から見る段落検出について その4

補足 他のやり方 一応、他に思いつくOCRの情報を使った方法として フォントサイズを基に段落を検出 インデントおよび折り返し位置を基に段落を検出 フォントサイズは見出し等がフォントサイズが大きくなりがちなので、それは段落としてみなせるでしょうみたいなアイデア。段落ごとにフォントサイズが異なる場合も生きる気がする。 インデントと折り返し位置は、段落の先頭はインデントが挿入されるし、段落の末尾は右端まで行かずに折り返されるのでそられの情報から段落境界をを検出するアイデア。 行間の使い道 行間が極端に狭い場合は段落とみなしてよいと私は考えています。 感覚的にある程度行間が狭いと「さすがにこれは同一段落だろう」と思うようなところはあると思っていて、0だとかマイナスってのはそのさすがにに相当すると考えています。具体的にどのくらいまでとか考えるとややこしくなるとは思いますが…。 以下のページに画像の膨張処理で段落を検出する話があるんですが、感覚的には似たような話かなぁと思ってます。 How to detect paragraphs in a text document image for a non-consistent text structure in Python OpenCV 複数のスタイルに対応できたとして 下図みたいな文章があった場合、複数のスタイルに対応できれば 1. Aaq... 2. Aaq... 3. Aaq... ごとに段落境界を検出する。 ただ、これが箇条書きであれば不完全な識別だと言えるし、それぞれに境界が欲しくなる。 とは言え、それは本質的には文章から箇条書きを抜き出すような別タスクで、空間的な距離だけをもとに識別する方法の外の話になるだろう。 ぬるっぽさんちのPCOT PCOT の実装は掲示板を見るとそれとなく書いてあるので探してみると良いです。しきい値との兼ね合いが分からないんですが、どうやら行送りの最頻値もしくは最小値を使っているみたいです。 最小値?ってなるかも知れませんが使ってみると良い感じなんですよね。 基本的に文章段落は単一のスタイルに統一されている 箇条書きは文章より行間が広いことが多い って感じで結果的に文章の行送りが最小値になってることがままあるので、文章は同一段落になって箇条書きは分離みたいなことがありました。実践的な感じがしま