プログラムの事とか

お約束ですが「掲載内容は私個人の見解です」

WPF

WPFのItemsControlで仮想化が効かない時に確認すること

WPF

なんで仮想化しないんだろー、と悩んでいたら当たり前だったこと 準備 <DataTemplate> <TextBlock Text="{Binding Converter={StaticResource TextConverter}}"/> </DataTemplate> DataTemplateをこんな感じで書いて public class TextConverter : IValueConverter { private int _counter; public object Convert(object value, Type targetType, object paramete…

WPFで雑にウォーターマーク付きのテキストボックスを作る

WPF

ウォーターマークのあるテキストボックス(未入力だと透かしがでるやつ)がたまにほしくなりますよね ガッツリ作る必要もない時はテンプレートで適当に作ってしまえばいいんじゃない? <Window.Resources> <Style x:Key="WatermarkTextbox" TargetType="{x:Type TextBox}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TextBox}"> <Grid Background="White"> </grid></controltemplate></setter.value></setter></window.resources>

WPFのInkCanvasで塗りつぶす

WPF

InkCanvasは線を描くものっぽくて閉じた領域の塗りつぶし、みたいなことは標準ではできなさそうでした ということでとりあえず適当に塗りつぶすようにしていみます 塗りつぶす人 System.Windows.Ink.Strokeを継承してDrawCoreで塗りつぶすようにします ソー…

WPFのItemsControl.ItemTemplateでリストの一つ前を参照する

WPF

WPFのItemsControlはすごく強力だとおもいますよね ItemsControl.ItemsSourceにリストをバインドして、ItemTemplateで中身を定義すると自由なリストが簡単に作れるので一度使うと癖になります 簡単な例だとこんな感じ <ItemsControl ItemsSource="{Binding Numbers}"> <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal" Margin="5"> <TextBlock Text="{Binding}"/> </textblock></stackpanel></datatemplate></itemscontrol.itemtemplate></itemscontrol>

WPFでShapeをResourceにして使いまわす

WPF

WPFに限らず今時のアプリではアプリ内で使うアイコン等をベクトルデータで持っていることが多いと思います Illustrator → SVG → XAML って感じでアイコンデータがやってきたりすると思いますが、これをそのままContentに張り付けるのは悪手ですよね(面倒な…

WPFのCanvas上で動くShapeを線でつなぐ

とりあえずこんな感じの奴を用意します <Canvas> <Rectangle x:Name="Rect1" Width="50" Height="50" Fill="Cyan" Canvas.Left="0" Canvas.Top="0"/> <Ellipse x:Name="Ellipse1" Width="50" Height="50" Fill="Magenta" Canvas.Left="200" Canvas.Top="200"/> </ellipse></rectangle></canvas>

WPFで地図にTileを追加したりしてみる

puni-o.hatenablog.com puni-o.hatenablog.com puni-o.hatenablog.com のWPF版です。(今度こそXamarin.Androidだと思った?ねぇ思った?) サクッとやりますよ。 使うのはMicrosoft.Maps.MapControl.WPFです。Nugetでゲットできます。 こんな感じ。みんな地…