ブログ記事77件
OpenCVSharp4を用いて、画像をリサイズして保存する方法について書きます。まず、富士山の絵をC:\富士山.jpgとして、保存しておきます。さて、説明を開始します。(1)新しいプロジェクトの作成(2)NuGetパッケージマネージャーを使用して「OpenCvSharp4.Windows」パッケージをインストールします。(3)プログラミングします。(4)実行します。富士山の絵が無事にリサイズされて保存されました。また、富士山の絵がウインドウに表示されま
(まとめ)MahApps.Metroを使うと、格好の良い部品を使える。(手順)(1)WPFアプリ(.NETFramework)を作成します。(2)「参照」を右クリックして、「NuGetパッケージの管理」で、「MahAps.Metro」をインストールします。(3)usingMahApps.Metro.Controlsとして、MetroWindowをMainWinowに継承させる。(4)MainWindow.xamlをプログラミングします。
今回は、ファイルの情報から、動画のファイルの長さを調べてみます。(1)新しいプロジェクトをします。(2)Shell32を、COM参照します。(3)画面をデザインします。(4)プログラムを書きます。適当な動画ファイルを参照します。今回は、"c:\ベルーガさん.mp4"ファイルです。(5)実行して、ボタンをクリックします。(6)はい、27番の動画の再生の長さの情報を、見事にファイルから取得できました(^^♪GetDetailsOfの、27番ありがとう。良かっ
「BCCSkeltonでもやったTextToSpeech、DirectShowなどはどんな形でC#で使われているのだろう?」という疑問から昨年末から続いてきた【WPF】と【SAPI】シリーズですが、今回で一応お開きということになります。おかげさまで(知らずに使っていた)WinFormsとは異なるUIプラットフォームのWPF(従って、XamlやMSBuild、UIElementやContent等周辺知識も含めて)や現在のC#における音声合成・認識について「一舐め」させていただいた気分です。さ
前回の前提を踏まえ、それでは比較的簡単な音声合成を使うプログラムからやりましょうか。今回のお題である「音声合成」をwebであさっていたら、2019年のIliaSmirnovさんによるMicrosoftLearnの英文記事(注)に小ネタが取り上げられており、その4番目のものを、英語+ロシア語から英語+日本語にしてウィンドウプログラムに改造してみました。注:Speech-Text-To-SpeechSynthesisin.NET|MicrosoftLearnまた、ウィ
前回コントロールとしてMediaElementを使いました。今回は一味違うMediaPlayerを使ってみます。実はこのMediaPlayer、(WPFのことを何も知らない)以前にWinFormで貼り付けたことがあります。この時の結果は、”追記:アップしてから、「↑のコードでどうなったの?」という結論を書き忘れましたぁ!実は↑のコードは「正常にコンパイルされ、動くことは動き」ます。ただ、動画ファイルを読み込んで再生しても「音しか出ない」だけです。まぁ、画像処理部分が解説した通りなので、再
前々回、WPFを利用した動画再生のためのアプローチとして、MediaElementとMediaPlayerの二つがあり、前者はUIElementなのでWin32でいうコントロールのように使え、後者は描画機能として実装することを書きました。今回は前々回紹介したダイアログにMediaElementを入れて、動画再生アプリサンプルとします。その為、既にコメントや解説:で紹介したところは色付けせず、MediaElement関連の部分だけ青色(コメント、解説)、赤色(MediaElement)、紫色
WinFormがWindows95からのWin32APIをベースにしたプラットフォームで、WinFormはWin32APIに依拠し、WPFはDirectXの描画に依拠した新しいプラットフォームであることは前に述べました。ということで、MicrosoftCopilotに以下の質問をしてみました。Q:WinFormになくて、WPFで新たに作られたコントロール(UIElement)は何ですか?これに対する答えは以下の通り。A:「WPFで新たに作られたコントロール(UIEle
System.Diagnostics.Process.Start("explorer.exe",@"任意のフォルダ名");で解決です。.NET5~8では、旧式の方法は無理です。旧式の方法:System.Diagnostics.Process.Start(@"任意のフォルダ名");結果:アクセスが拒否されます。以上です。
さて、今回WPFを学習する主動機であるこれのうち、動画の再生を取り上げてみます。さて、この段階では「こんなものを見つけました。『このページWindowsメディアプレーヤーSDKに関連付けられている機能は、レガシ機能です。MediaPlayerに置き換わりました。MediaPlayerは、Windows10とWindows11用に最適化されています。新しいコードでは、可能な場合はSDKではなくMediaPlayerWindowsメディアプレーヤー使用することを強くお
前回まででWPFで複数のコントロールを扱えることが分かりましたので、これから当初の意図にもとづいてWPFで提供されている動画再生と音声再生のガジェット(Gadget)を探索してみたいと思います。しかしっ!その前にテストする器(ウィンドウ)を用意しなければなりません。先ずは動画再生用のダイアログを用意することにします。以下のサンプルはWPFを学習し始めた当初の者なので、コメントで備忘を書き込んでいます。これと//解説:を参考にしてください。(WinformのDialogテンプレー
前回WPFにおけるコントロールの使い方作法を紹介しましたので、先ずはウィンドウに色々とコントロールを貼り付けてみようかと思いました。しかし、哀しい哉、私には絵心がない!ので、MirosoftLearningに載っているコントロールサンプルを3つ使って、それも一挙にウィンドウに張り付けることにしました。いつものようにコメントと「解説:」で紹介します。【Window05.cs】///////////////////Window05_1.cs//参照:https://le
前々回、WPFで作るウィンドウには一つのコンテンツしか入れられないので、コントロールが一つしか付けられないことが分かりました。また前回は(WinFormと対比しながら)ウィンドウの"Content"に入れるものの動作や特徴についても書きました。今回は先ずこれを深堀してみようと思います。WPFはウィンドウをwebのページのように扱い、ページに表示するものをUI(UserInterface)としてとらえているようです。webで色々とみていると、こんな図を見つけました。「UI要素のクラス階層
さて、前回「次回からはこれ(注)をもっと詳しく見て(getmoredetails)行きましょう。」と書きましたが、思い付きで他の話題を取り上げてしまうのが、このブログの作法です。(笑)注:複数コントロールの使い方、です。前回WPFでウィンドウ(Windowクラス)のContentに文字列、画像、コントロールを入れてみましたが、(1)文字列は普通に表示される(2)画像はそのサイズにより、縦か横一杯に表示される(3)コントロールはクライアントエリア(ページエリア?)いっぱいに表
前回までの検証で、WPFのウィンドウ(Windowクラス)は、ウィンドウコントロールを、文字列や画像と同様にUI用情報表示用のContent(コンテンツ)で表示することが分かりました。では、複数のコントロールを表示するとどうなるのでしょうか?見る前に飛べ、ということで、実際にやってみましょう。【Window03.cs】/////////////////Window03.cs///////////////usingSystem;usingSystem.Window
前回、WinFormでは(Win32の)伝統的な「ウィンドウにコントロール(子ウィンドウ)を付けて表示」するのに対して、WPFではWEB的に「(ページとして)ウィンドウにコンテンツを表示」するパラダイムシフト(変化)が起こっているようだ、と書きました。それを確認する前に、先ずWPFで「(このあいだ作った)ウィンドウに何かを表示する」サンプルを書いてみようと思います。【ウィンドウにコンテンツを表示する】/////////////////Window02.cs////////////
前回の疑問から、WindowクラスとFormクラスのプロパティ、メソッド、イベントを並べて比較し、大きな違いがあることが分かりました。しかし、この比較で「Formに(コントロールを追加する時に使うForm.Controls.Add()の親玉である)Controlsがプロパティにない」ことに気が付きました。またWPFのWindowクラスではForm.Controls.Add()は使えないので(エラーが出ます)、ウィンドウにコントロールをどのように入れるのでしょうか?Web等では「コント
前回(「WPFを学習する(2)」)で、「『両者は似たようで非なるものだ』という印象を強くし」たと書きましたが、vsC#の膨大なクラス等すべての対比をするわけにはいかないので、サンプルとして前回作ったウィンドウ(WinFormではFormクラス、WPFではWindowクラス)に関わるプロパティ、メソッド、イベントをWindowクラスとFormクラスで対比してみようと思います。出典はMSLearningですので、個々の詳細はご自身で確認してください。【WindowクラスとFor
前回の学習では、WPFのアウトラインを俯瞰してみましたが、抽象的過ぎて何の役にも立たない「知ったかぶり知識」でした。プログラミングにおける「役に立つ知識」とは「プログラムを書ける能力」に直結していないと、ですよね?では「即戦力」観点から学習するにはどうしたらよいのか?「習うより慣れろ」の原則に立ち返るべきなんでしょうね。まずは「単なるウィンドウを作る」所から始めましょう。まずは慣れ親しんだWinFormでのウィンドウだけのプログラムから。【WinFormでの最小ウィンドウプログラム】
前回までの経験で「C#のウィンドウプログラムにはWinFormsとWPFという異なる(UI)プラットフォームがあり、これらは共存が困難である。」ということを学びました。(注)注:私がMSCompAssを作って、Windows10や11に標準でついてくるcsc.exe(C#5)を使い始めた際に参照した学習サイトは、私が20年以上前にC++を学習した際に参考にした旧いもの(「猫でも」)だったので、自然にウィンドウズプログラミングがWinFormsベースになった訳です。私はWPFという「言葉」は「
と(前回の話)いうことで、このサンプルコードを利用して自作のダイアログテンプレートをベースにテストします。フォームのドンガラは直ぐにできて、後はサンプルのコードを参考に「(メディア)ファイルを読込」「再生」「一時停止」「中断」「終了」の各メソッドを埋めればよいのです。(悪戦苦闘の部分は//解説:を参照してください。)【MediaPlayer(Form).cs】/////////////////////////////////////////////////////////////
それでは、前回触れた「私の格闘記」を始めてみようと思います。ご存じの通り、このブログは2002年にVectorにリリースした、当時のフリーのC++コンパイラーの一つ、BCC(BorkandC++Compiler5.5)の開発環境としてリソースエディター、BCCSkeltonライブラリー、スケルトン作成ウィザードと各種ツールのパッケージであるBCCFormandBCCSkelton(含サンプルプログラム)を、20年後に定年退職した爺いがボケ防止のためにアップデート(含Unicode
なんでも自作、王道を歩かない私ですが、今回だけは「参った」ということで、きちんとしたWPFプログラムを書こうとするならVisualStudioを使ってくださいという結論から入ります。理由としては、(1)WPFベースの開発では、ウィンドウやコントロール等のUI関係がFormベースのものと異なり、(C#コードで書けなくもないのですが)基本的にXAML(eXtensibleApplicationMarkupLanguage)を使った開発が望ましいこと(2)この場合、XAMLファイ
VisualStudioThemePackが、いけている件(*^▽^*)について、書きます。◆手順(1)VisualStudio2022を立ち上げます。(2)「コードなしで続行」をクリックします。(3)「拡張機能」メニューを開き、「ManageExtensions...」をクリックします。(4)「VisualTheme」で検索し、「VisualStudioThemePack」をインストールします。(5)「ツール」メニューの「
VisualStudio2022で使える、Prismのテンプレートパック、MVVM開発に良いですね(^^♪PrismTemplatePackPrismTemplatePack-VisualStudioMarketplaceインストールすると、下のようなテンプレートが追加される(*^▽^*)良かった。良かった(^^♪
前回の記事の実行が終わった人に、マイクロソフトのSQLiteの実際の利用方法を書きます。今回は、トランザクションを用いる方法です。1万行以上のデータベースを扱うときには、実行速度が圧倒的に速くなります。(1)WPF(.NETFRAMEWORK)のプロジェクトを一つ作ります。(2)「MainWindow.xaml」を書きます。(3)「MainWindow.xaml.cs」に、コンストラクタを書きます。(4)「MainWindow.xaml.cs」に、「Bt
前回の記事の準備が終わった人に、マイクロソフトのSQLiteの実際の利用方法を書きます。(1)WPF(.NETFRAMEWORK)のプロジェクトを一つ作ります。(2)「MainWindow.xaml」を書きます。(3)「MainWindow.xaml.cs」に、コンストラクタを書きます。(4)「MainWindow.xaml.cs」に、「BtnRunMySQL_Click」を記述します。(5)続き(6)続き(7)続き(8)続き(9)続き(10)続き
Microsoft.Data.Sqliteを利用する準備について書きます。(1)NuGetで、SQLitePCLRaw.bundle.e_sqlite3をインストールします。(2)NuGetで、SQLiteを検索すると、Microsoft.Data.SqliteとSystem.Data.SQLiteが現れます。そこで、動作が正確な方のMicrosoft.Data.Sqliteを選んで、インストールします。(3)プログラムのPackagesフォルダにインストールされた、S
「ソフトウェアの設計・開発」です。今まで行ってきたプロジェクトの中にひとつ、ある公共の乗り物を乗ったときに思い出すものがあります。なぜかというと?その乗り物の会社で使われているあるシステムを設計・開発しました。設計と実装作業の大部分を担当しました。運行指令室にも入ってセットアップのサポートなども行いました。直接、乗り物のを制御するなどではなく大したものではないのですが、日々の運営に関わっているソフトウェアを開発できたことはとても嬉しいことです。多分、今も使われて
C#のWPFで、AND検索をする方法について解説します。(1)プロジェクトを作成します。(2)作成したプロジェクトに、「データ」クラスを追加し、コーディングします。(3)MainWindow.xamlをコーディングします。(4)MainWindow.xaml.csをコーディングします。(5)実行します。「東京」と「江戸川区」で、AND検索します。「東京江戸川区」と入力して、「and検索」ボタンをクリックします。すると・・・はい、きちんとAND検索できました。幸せに