布団が俺を呼んでいる

丘山大一のぶろぐ

XAML 多角形の中に文字を表示したい

多角形作って、中にTextBlock突っ込めばオッケー、簡単ですね。
あれ?

多角形(Polygon)の中にTextBlockは突っ込めないみたい

な、なんだってー。

というわけで

正解はTextBlock の裏に多角形を仕込むことみたいです。

<Window x:Class="WpfApplication1.MainWindow"
        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"
        xmlns:local="clr-namespace:WpfApplication1"
        xmlns:exshape="clr-namespace:Microsoft.Expression.Shapes;assembly=Microsoft.Expression.Drawing"
        xmlns:exctrl="clr-namespace:Microsoft.Expression.Controls;assembly=Microsoft.Expression.Drawing"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBlock Text="12" FontSize="24"
           Width="50"
           Height="50"
           Padding="10,10,0,0">
            <TextBlock.Background>
                <VisualBrush>
                    <VisualBrush.Visual>
                        <exshape:RegularPolygon Width="50" Height="50" Stroke="Black" PointCount="5"  Opacity="0.25" />
                    </VisualBrush.Visual>
                </VisualBrush>
            </TextBlock.Background>
        </TextBlock>
    </Grid>
</Window>

ポイントは TextBlock の Padding 。
これで文字位置を微調整する必要があります。

うーん、イマイチ

多角形の中に文字列が存在する のではなく、
文字列の裏側に多角形が存在する というのは、直観に反しているのでなんかイヤ。
もっといい方法ないかなあ……。

あと、もしかして……

UWPってRegularPolygonを呼び出せない……??

Windows 10ユニバーサルアプリ開発【Windows 10 Mobile対応】 ThinkIT Books

コメントを書く

< 布団が俺を呼んでいる | UWP Project が作成できない

布団が俺を呼んでいる

丘山大一のぶろぐ

UWP Project が作成できない

UWPは、なんでこうもエラーが多いのだ(泣)
以下失敗談。対応方法だけ知りたい方は最後らへんだけどうぞ。

エラー内容

久々にUWPでアプリを組もうとしたところ、下記のエラーが発生。


調べると、どうやらSDKのインストールにコケている場合に出るらしい。

対応

SDKを拾ってきてスタンドアロンインストール
と思ったんですが。


先生、なんかエラーが出ます!

試しにVS2015のインストーラーからWIndows Software Developer Kit を入れなおしてみる。
玉砕。

う~ん、分からん。
と思ってコンパネを覗いてみたらなんかいる。


あれ? 14393を入れようとしているのに、なんで26624がいるんだ?
試しにアンインストールしてみる。
それでから、再度スタンドアロンインストール実行。

しかし無情なるエラー。
折れそうになる心。

でも、コンパネを見直すと14393が入っている。
ものは試しと「変更」→「Repair」を試してみる。
Visual Studio 起動……なんか使う予定がないPythonでエラーが出たぞ(汗)
VS2015のインストーラーをもう一回叩いて入れなおす。
Visual Studio 再起動……。う~ん、Python はエラーでなくなったけどUWPはまだダメ。

ちょっとここで仕切り直し。
コンパネから14393をアンインストール。OS再起動。
そしてスタンドアロンインストール実行……おおインストーラーが動いた!
これはいけた!……と思いきや、プロジェクト作成は失敗する。

再び折れそうになる心。

最終的に

こちらを参考にさせていただきました。
超感謝。
projectのテンプレートの一部をコメントアウトすることで対応。
私の場合、パスは下記。
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplates\CSharp\Windows Root\Windows UAP\1041\BlankApplication\BlankApplication.vstemplate

結果

・WIndows Software Developer Kit 10.0.26624 が妨害していたことはしていたと思う
・同じようにプロジェクトが作成できない方がいるということは、何か条件があるはず……ぐぬぬ。


かずきのUWP入門

コメントを書く