![見出し画像](https://assets.st-note.com/production/uploads/images/137472168/rectangle_large_type_2_e62d8fe12f1950afbf98508b09d10335.png?width=1200)
デスクトップマスコット作ってみた
こんにちは!ねずみとりです。今回はC#のフォームアプリケーションでデスクトップマスコットを作ってみました。
デスクトップマスコットって何?
デスクトップマスコットとはデスクトップ上にキャラクターの絵を表示することができるアプリケーションです。吹き出しでおしゃべりをしてくれるなどといった機能を持つこともあります。
表示するキャラクター
絵は得意ではないのでドット絵でキャラクターを書いてみました。アニメーションにできればもっと良かったかもしれませんね。
![](https://assets.st-note.com/img/1713249774096-whhzdZbA8m.png)
機能
かわいい
あいさつしてくれる
時間を教えてくれる
まだ時間を教えてくれるだけの時計アプリでしかありませんがこれから様々な機能を加えていきたいと思っています。
![](https://assets.st-note.com/img/1713246004251-vFL1tHaiAL.png?width=1200)
追加したい機能
ダブルクリックで閉じる
計算機
ToDoリスト
まず、フォームを透過してしまっていてアプリをタスクバーからしかアプリを終了できないためアプリを閉じる機能が必要です。それ以外にも計算機やToDoリストなどあると便利な機能をいくつか追加したいです。
コードと説明
TransparencyKey = BackColor;//透過
FormBorderStyle = FormBorderStyle.None;//フォームの上透過
TopMost = !TopMost;//最前面
ここからはコードの一部とその説明になります。上のコードではフォームの透過とアプリを最前面に持ってくるということを行っています。フォームアプリケーションではフォームの中にテキストや絵を追加します。そのフォームを透過することで絵とテキストのみを見えるようにしています。
![](https://assets.st-note.com/img/1713247067299-k3PTbkGtnc.png?width=1200)
private void Mouse_Down(object sender,MouseEventArgs e)
{
if((e.Button&MouseButtons.Left)==MouseButtons.Left)
{
mousePoint=newPoint(e.X,e.Y);//位置を記憶する
}
}
private void Form1_MouseMove(object sender,MouseEventArgs e)
{
if((e.Button&MouseButtons.Left)==MouseButtons.Left)
{
Left+=e.X-mousePoint.X;
Top+=e.Y-mousePoint.Y;
}
}
Mouse_Down関数はクリックされたときに呼ばれる関数です。ここでカーソルの位置を記憶します。Form1_MouseMoveはカーソルが動いたときに呼ばれる関数です。ここで先ほど記憶したカーソルの位置を使ってフォームの位置を動かすことでマスコットのドラッグ移動を可能にしています。
おわり
この記事が気に入ったらサポートをしてみませんか?