まめ - たんたんめん

備忘録 C# / WPF 多め

WPF

WPF 幅と高さが大きすぎるとリモートデスクトップ時に正常に表示がされない

WPF

こんにちは。 久々のトラブルネタです。 在宅勤務が広がってたもあってリモートデスクトップがらみのトラブルが絶えません。 今回遭遇した問題はコントロールの幅と高さが大きすぎると意図したレンダリングがされない問題が起こっていたようでした。 具体的…

WPFを3年くらい使ってた人の雑記

WPF

はじめに こんばんはー 。 ブログらしい記事?を書いてみたいと思い立ったので今日は普段業務で利用しているWPFについて掘り下げて書いてみようと思います。 今回は初学者向けの内容となりますので、十分知ってるよーって人は軽く流してください。笑 WPF ? …

MVVMにおけるデータ仮想化の実装

概要 デモアプリ 実装 デモで利用したライブラリ こんにちは。 今日は仮想化についての話です。 WPF界隈で仮想化と検索するとVirtulizingStackPanelのようなものViewに関する記事などが多く出てくるとと思いますが 今さら使い方の説明を書いても面白みがない…

WPF - FontAwesomeの利用方法比較と自前で作ったコントロールの紹介

はじめに フォントファイルをそのまま使う 問題 Font Awesome WPF を使う 問題 YiSA.FontAwesome5.WPFを使う 自作版FontAwesomeコントロールの紹介 SVG から C#への Converterの作成 描画コントロール 最後に はじめに FontAweomeとは素晴らしいアイコンをフ…

WPF StoryBoardを使ったアニメーションの拡張

お久しぶりです。久々にやる気になったので技術記事を書きます。 今日はWPFのアニメーションをカスタマイズしてちょっとリッチな表現ができる機能を紹介しようとおもいます。 入門記事やシンプルな組み込み型の記事についてはいろんなブログで紹介されていた…

WPF DataTemplate.DataType にinterface を指定可能にするDataTemplateSelectorの実装

やりたいこと ListViewやItemsControlでデータを並べる際に interface にってViewを切り替えたい。 ItemsControlのDataTemplate解決の仕組み ListVIewやItemsControlが並べるデータのViewを指定する仕組みについて簡単に解説します。 ItemsControlではItemsS…

WPF タイムライン風のコントロールを作る

WPFでタイムライン風のコントロールを作ってみました。 1000 トラック x 4 クリップくらいは追加しても問題なく動きます。 目盛り数値はスクロール範囲外に描画していますが、スクロールバーの移動に追従して移動します。 各トラックに描画されているメモリ…

WPF TextBlock等で利用される規定のFontFamily

WPF

設定がない場合SystemFonts.MessageFontFamilyから取得したものを利用する デフォルト(規定)のTypeFaceを作成するには var typeface = new Typeface(SystemFonts.MessageFontFamily.Source); もしくは var typeface = new Typeface(SystemFonts.MessageFontF…

WPF DrawingContext.DrawText()で書いたテキストが滲む

WPF

WPF にはUseLayoutRoundingというプロパティがあり、ルート要素 (MainWindow等)で trueにすると文字や絵が滲まなくなることは有名だが DrawingContextを使って独自に文字列を描画している場合は滲んでしまう。 この対策としてルート要素に下記Propertyを指定…

WPF DependencyProperty SetCurrentValue と SetValueの違い

今日は DependencyProperty.SetValue()とDependencyPropertySetCurrentValue()の違いについて具体例を出して挙動の違いを見ていこうと思います。 「ViewModelの値とViewの値が違うんです。」みたいな相談をたまに受けるんですが大体原因はこれです。 まずはD…

WPF TsNodeをnugetに公開しました

TsNodeとは TsNodeとはWPFから扱えるグラフエディター(ノードエディター)風のアプリが作れるカスタムコントールライブラリです。 今回、より簡単にいろんな人が使えるようにTsNodeをnugetに公開しました。 まずは、画面表示するまでのチュートリアルをやり…

WPF 無限ScrollViewer

無限スクロールビューアーというものを作ってみました。 例によってノードエディターの付属品としての実装です。 ScrollViewerを継承するアプローチで実装をしようと思ったのですが、負の値がうまく扱えず断念。 仕方なくCustomControlとして実装しました。 …

WPF コントロールにグリップでサイズを変更する機能を付与するBehaviorを作る

TextBoxやButton等のWPFの標準コントロールに簡単にサイズを変える機能を添付する方法を紹介します 一番シンプルなのはコードビハインドのMouseDownやMouseMoveをごにょごにょして実装する方法ですが あまりスマートではないし、コントロール事に実装しない…

WPF カスタムコントロール初期化時の実行順

WPF

Constructor:base() OnInitialized() Constructor() BeginInit() EndInit() OnApplyTemplate()上から順番に実行される模様EndInit()が終わった段階では template の中身は取れないので注意

(WPF)エクスプローラ風のアドレスバ―コントロールっぽいものを作ってみた。

使えそうなOSSがあまりなかったので自作しました。 実際に組み込んでみるとまだいろいろ不備があります。 github.com

(WPF) オシャレな半透明ウィンドウを実装してみる

タイトルの通りです。 実用性は皆無ですがやってみたかったので作ってみます。まず半透明なアプリと不透明なアプリを比較 不透明な画像ビューア 半透明な画像ビューア 地味ですが半透明になっているのが分かると思います。 Window のxamlに以下の定義を入れ…

(WPF) SelectedItems をViewModelで取得する

MVVMパターンでWPFアプリを作成しているとListViewやDataGridのSelectedItemsが取得したくなることがあります。 しかしSelectedItemsはDependencyPropertyではないので直接バインドすることはできません。 そこで以下の様なビヘイビアを作成してすることで問…