次の問題。C#で小さなものを描いてみました。これをCanvasで実行したいと思います。ただし、Canvasがなくても、線はぼやけて表示されます。単純なデモプロジェクトですでに失敗している最も単純なことは、次のコードです。
<UserControl x:Class="Drawing.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<Line Y1="1" Y2="300" StrokeThickness="1"
Stroke="Black" Margin="10 0 0 0"/>
</Grid>
</UserControl>
この線はぼやけて表示されています。いろいろ試してみましたが、くっきりとした1ピクセル幅のラインを実現する方法がわかりません。
私は次のことを試みました:
UseLayoutRounding="True"
- ここで提供されているピクセルスナッパークラスを試しましたが、これも機能しません。ここに、明らかに同じ問題があり、このカスタムピクセルスナッパーでも失敗したXavier Poinas(スレッド)の答えがあります。 「このクラスはアイテムの境界を丸いピクセルにスナップすることで機能することを理解しているようですが、座標私が使用しているのはすでに整数です。パスの場合、境界をスナップしても、コンテンツが丸いピクセルに収まるとは限りません。」)。
解決策が見つかった場合は、Canvasによって保持されている線をスナップできると便利です。
この理由は次のとおりです。技術的な理由から、カスタム境界線(サイズ変更)を実装する境界線のないOOBアプリケーションと、最小化、最大化、および閉じるアイテムを含むカスタムアプリケーションバーが必要でした。これらのアイコンを手で、線などで描いてみました。
もっと簡単な方法はありますか?画像リソースを使いたくないだけです。ありがとう!
どんな助けでも大歓迎です。