SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

FluentWPF 0.6.1をリリースしました

FluentWPF 0.6.0をリリースしました。
Release v0.6.1 · sourcechord/FluentWPF · GitHub

今回の変更内容は以下の通り。

  • 新機能
    • アクリル効果付きのメニュー・・・AcrylicMenuStyle
    • TextBox/PasswordBox用の添付プロパティ追加・・・Extensions.PlaceholderText, Extensions.Header
  • バグフィックス
    • AcrylicWindowのウィンドウ枠の色が、OSのテーマカラーに追従しない不具合を修正
    • ButtonRevealStyle使用時に起きるバインディングエラーを修正

アクリル効果付きのメニュー~AcrylicMenuStyle~

前回のAcrylicContextMenuに続き、Acrylicなメニューも追加しました。
こちらはカスタムコントロールではなく、スタイルとしての提供です。

こんなコードで、、、

<fw:AcrylicWindow x:Class="FluentWPFSample.Views.AcrylicMenuSample"
                  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:fw="clr-namespace:SourceChord.FluentWPF;assembly=FluentWPF"
                  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                  xmlns:local="clr-namespace:FluentWPFSample.Views"
                  mc:Ignorable="d"
                  Title="AcrylicMenuSample" Height="200" Width="350">
    <DockPanel>
        <Menu DockPanel.Dock="Top" VerticalAlignment="Top" Style="{StaticResource AcrylicMenuStyle}">
            <MenuItem Header="MenuItem1">
                <MenuItem Header="MenuItem3" />
                <MenuItem Header="MenuItem4" />
                <MenuItem Header="Sub">
                    <MenuItem Header="MenuItem3" />
                    <MenuItem Header="MenuItem4" />
                </MenuItem>
            </MenuItem>
            <MenuItem Header="MenuItem2">
                <MenuItem Header="MenuItem3" />
                <MenuItem Header="MenuItem4" />
                <MenuItem Header="Sub">
                    <MenuItem Header="MenuItem3" />
                    <MenuItem Header="MenuItem4" />
                </MenuItem>
            </MenuItem>
        </Menu>
    </DockPanel>
</fw:AcrylicWindow>

こんなメニューが作れます。
f:id:minami_SC:20181220233223g:plain

TextBox/PasswordBox向けの新機能

↓のプルリクでいただいた内容です。
TextBox and PasswordBox PlaceHolder and Header thru attached properties by fangeles02 · Pull Request #35 · sourcechord/FluentWPF · GitHub
UWPのTextBox/PasswordBoxなどと同じように、PlaceholderTextやHeaderプロパティを付けられるよう、添付プロパティを作っています。

TextBox/PasswordBoxに対し、以下の二つの添付プロパティを用意しました。

プロパティ名 説明
Extensions.Header string コントロール上部に表示するヘッダー文字列を設定
Extensions.PlaceholderText string テキストが空欄の時に表示されるウォーターマーク表示の文字列を設定

こういうコードで、、、

        <StackPanel>
            <TextBox HorizontalAlignment="Left" Margin="5" Width="200"
                     Style="{StaticResource TextBoxRevealStyle}"
                     fw:Extensions.PlaceholderText="Placeholder" fw:Extensions.Header="Header"/>

            <PasswordBox HorizontalAlignment="Left" Margin="5" Width="200"
                         Style="{StaticResource PasswordBoxRevealStyle}"
                         fw:Extensions.PlaceholderText="Password" fw:Extensions.Header="Password"/>
        </StackPanel>

こうなります。
f:id:minami_SC:20181220233248g:plain

バグフィックス

細かいバグ修正もしてます。
今まで、OSのテーマカラー変更しても、ウィンドウ枠のボーダー色が追従してなかったのですが、ちゃんと追従するようにしました。
f:id:minami_SC:20181220233312g:plain