Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Github Copilotのチャット履歴ビューワーを作りました~WPF、dotnet10もあ...

Avatar for KatsuYuzu KatsuYuzu
November 29, 2025

Github Copilotのチャット履歴ビューワーを作りました~WPF、dotnet10もあるよ~ #clrh111

Github Copilotのチャット履歴ビューワーを作りました~WPF、dotnet10もあるよ~ #clrh111

## イベントURL
https://clrh.connpass.com/event/367562/

## Github Copilotのチャット履歴ビューワー
https://github.com/KatsuYuzu/CopilotChatViewer

Avatar for KatsuYuzu

KatsuYuzu

November 29, 2025
Tweet

Other Decks in Programming

Transcript

  1. 何に使うか AIとやりとりした内容を、あとから見返したい AIとやりとりした内容を、プレゼン資料に使いたい チャット履歴ビューワー → 内容をHTML形式でコピーできます 🧑‍💻 こんにちは 🤖 こんにちは。私は

    GitHub Copilot です。プログラミングに関するご質問や コードの修正など、お手伝いできることがあれば教えてください。 🧑‍💻 こんばんわ 🤖 こんばんわ。何かプログラミングについてご相談がありますか?お気軽に ご質問ください。 会社でのGitHub Copilotの導入や布教で資料を作成するときにめっちゃ便利でした 3
  2. 機能 HTMLコピー <div><style> .chat-container { display: flex; flex-direction: column; gap:

    8px; } .msg-row { display: flex; } .msg-bubble { padding: 12px 16px; border-radius: 16px; font-family: 'Segoe UI', sans-serif; font-size: 15px; box-shadow: 0 2px 8px #0001; word-break: break-word; } .user { border-radius: 16px; background: #e6f3ff; margin-left: auto; } .copilot { border-radius: 16px; background: #fffbe6; margin-right: auto; } .icon { font-size: 20px; vertical-align: middle; margin-right: 8px; } .msg-row.user { justify-content: flex-end; } .msg-row.copilot { justify-content: flex-start; } </style> <div class="chat-container"> <div class="msg-row user"><div class="msg-bubble user"> <span class="icon">&#129489; &#128187;</span>こんにちは </div></div> <div class="msg-row copilot"><div class="msg-bubble copilot"> <span class="icon">&#129302;</span>こんにちは。私は GitHub Copilot です。プログラミングに関するご質問やコードの修正など、お手伝いできることがあれば教えてください。 </div></div> <div class="msg-row user"><div class="msg-bubble user"> <span class="icon">&#129489; &#128187;</span>こんばんわ </div></div> <div class="msg-row copilot"><div class="msg-bubble copilot"> <span class="icon">&#129302;</span>こんばんわ。何かプログラミングについてご相談がありますか?お気軽にご質問ください。 </div></div> </div></div> 🧑‍💻 こんにちは 🤖 こんにちは。私は GitHub Copilot です。プログラミングに関するご質問やコー ドの修正など、お手伝いできることがあれば教えてください。 🧑‍💻 こんばんわ 🤖 こんばんわ。何かプログラミングについてご相談がありますか?お気軽にご質 問ください。 マークダウンで作成している資料にそのままペーストして使ってください! 5
  3. 開発・技術情報 https://github.com/KatsuYuzu/CopilotChatViewer WPF(Windows Presentation Foundation, XAML) MVVMパターン(CommunityToolkit.Mvvm) dotnet9 partial プロパティ

    source generatorとの親和性に革命が起きてます! Fluent UI スタイル(プレビュー) dotnet10 Fluent UI スタイル(プレビュー) WPF での Fluent UI スタイルのサポートを向上させるために、.NET 10 ではさまざまな バグ修正が行われています。 Fluent UI スタイルのサポートはまだ進行中です。 6
  4. CommunityToolkit.Mvvm × partial プロパティ dotnet8まで(※C#12まで) [ObservableProperty] private string? _name; 自動生成プロパティと競合しないように命名

    dotnet9から [ObservableProperty] public partial string? Name { get; private set; } partial のおかげで競合しない CommunityToolkit.Mvvmのsource generatorで自動生成されるプロパティ public partial string? Name { get => field; private set { if (!global::System.Collections.Generic.EqualityComparer<string?>.Default.Equals(field, value)) { OnNameChanging(value); OnNameChanging(default, value); OnPropertyChanging(global::CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.Name); field = value; OnNameChanged(value); OnNameChanged(default, value); OnPropertyChanged(global::CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.Name); } } } 7
  5. Fluent UI スタイル リソースの読み込み <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/PresentationFramework.Fluent;component/Themes/Fluent.xaml" />

    </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> テーマの適用 #pragma warning disable WPF0001 Application.Current.ThemeMode = ThemeMode.System; // light, dark #pragma warning restore WPF0001 ※まだプレビューの機能なので警告の抑制が必要 https://learn.microsoft.com/ja- jp/dotnet/desktop/wpf/whats- new/net90#fluent-theme 8