EdgeModeでアンチエイリアスの有無を切り替え、WPF
RenderOptions.SetEdgeModeで図形のアンチエイリアスの有無を切り替え
左右それぞれのStackPanelの下の方に表示している図形は上から
Line(太さ0.5)
Line(太さ1.0)
Line(太さ5.0)Lineはそれぞれ2本ずつ
Rectangle
Ellipse
右のすべての図形は図形自体のEdgeModeにAliasedを指定している
左は指定なし
この状態からボタンでStackPanelのEdgeModeを切り替えてしている
EdgeMode
指定できるのは2種類でUnspecifiedとAliased
Unspecifiedは日本語で未定義、不特定の意味らしい
特に指定しない場合はこれになるみたいで結果はアンチエイリアスが有効な状態
Aliasedを指定するとアンチエイリアスが無効になる
親要素にAliasedを指定すると所属している子要素すべてもアンチエイリアス無効になる
UseLayoutRounding
これはおまけで試してみた、切り替えると表示位置が微妙に移動する
有効にすると表示位置をピクセルに合わせてくれる感じなのかなあ、よくわからん
SnapsToDevicePixels
切り替えても何も変化しないねえ
XAMLデザインモード
参照したところ
WPFでアンチエイリアシングを無効にする方法 – 川西 裕幸のブログありがとうございます!
https://blogs.msdn.microsoft.com/hiroyuk/2009/02/15/wpf-2/
WPFでのUIアンチエイリアス封じ込め - コンクリートアスパラガス
http://d.hatena.ne.jp/Conpara02/20120526/1338017590
MahAppsのTreeViewをWPFで使ったときの話 - PG日誌
http://takachan.hatenablog.com/entry/2016/01/06/231255
【WPF】グリッド状の模様を描く (1)~(6)のまとめ – ザワプロ!
http://zawapro.com/?p=1041
.NET TIPS: WPF/ UWP: コントロールのエッジをシャープに描画するには?[XAML] - @IT
http://www.atmarkit.co.jp/ait/articles/1602/17/news034.html
文字列をフォーマットして表示するはなし with 多言語対応とかマークアップ拡張とか - Qiita
http://qiita.com/wonderful_panda/items/a45ffaaca7f9c6e0d494
この前の記事の
WPF、BindingのStringFormat、数値の書式設定をVBコードで ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/14895536.html
これに付け足し
TextBlockにBindingする値が文字列でその文字列に別の文字列を追加して表示したいとき
今回のだとこれ、EdgeModeをTextBlockにBindingして表示する
'Bindingソース作成、StackPanelのEdgeModePropertyをソースにする
Dim b As New Binding With {
.Source = p,
.Path = New PropertyPath(RenderOptions.EdgeModeProperty),
.StringFormat = "PanelのEdgeMode = {0}"
}
EdgeModeがAliasedのとき
BindingのStringFormatに何も指定しないと表示されるのはAliased
PanelのEdgeMode = Aliasedって表示したいときは上のように
.StringFormat = "PanelのEdgeMode = {0}"
って書けばいいみたい、{0}ってところにBindingした値が表示される
画像をくっきり表示させたい(ぼやけるのがイヤな)とき、EdgeModeとScalingMode、WPF ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
https://blogs.yahoo.co.jp/gogowaten/14912530.html