C#, WPF, メモ, 開発環境

よく使う初期環境 のMaterialDesignThemes 3.1.3 対応版

  • ControlzEx 4.3.2
  • LivetCask 3.2.3.1
  • LivetCask.Behaviors 3.2.3.1
  • LivetCask.Collections 3.2.3.1
  • LivetCask.Converters 3.2.3.1
  • LivetCask.Core 3.2.3.1
  • LivetCask.EventListeners 3.2.3.1
  • LivetCask.Messaging 3.2.3.1
  • LivetCask.Mvvm 3.2.3.1
  • MahApps.Metro 2.2.0
  • MaterialDesignColors 1.2.6
  • MaterialDesignThemes 3.1.3
  • MaterialDesignThemes.MahApps 0.1.4
  • Microsoft.Xaml.Behaviors.Wpf 1.1.19

C#, WPF

画像の登録

1. プロジェクトのプロパティ → リソース → イメージ に、表示したい画像を登録する。

C#, WPF

MainView.xaml

<Window x:Class="WpfApp15.View.MainView"
        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:i="http://schemas.microsoft.com/xaml/behaviors"
        xmlns:l="http://schemas.livet-mvvm.net/2011/wpf"
        xmlns:local="clr-namespace:WpfApp15.View"
        xmlns:vm="clr-namespace:WpfApp15.ViewModel"
        mc:Ignorable="d"
        Title="MainView" Height="450" Width="800">

    <Window.DataContext>
        <vm:MainViewModel/>
    </Window.DataContext>

    <i:Interaction.Triggers>
        <i:EventTrigger EventName ="Loaded">
            <l:LivetCallMethodAction MethodTarget="{Binding}" MethodName="OnLoaded" />
        </i:EventTrigger>
    </i:Interaction.Triggers>

    <Grid>
        <Button>
            <Button.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="MenuParent" ItemsSource="{Binding ArrayMenu1}">
                        <MenuItem.ItemContainerStyle>
                            <Style TargetType="MenuItem">
                                <Setter Property="Header" Value="{Binding DisplayName}"/>
                                <Setter Property="IsChecked" Value="{Binding Checked}"/>
                                <Setter Property="Command" Value="{Binding}"/>
                            </Style>
                        </MenuItem.ItemContainerStyle>
                    </MenuItem>
                </ContextMenu>
            </Button.ContextMenu>
        </Button>
    </Grid>
</Window>

WPF, デザイン, 開発環境

Fluent Designとは

Microsoftが2017年に提唱したデザインシステム。

Windows10の電卓など、一部アプリケーションはすでにFluent Designになっている。
また、Office・カレンダー・メール等、Microsoft製アプリケーションのアイコンデザインがFluent Designベースに変更された。

C#

正規表現のテストに便利なサイト

IsMatch

string strTarget = @"本日は閉店なり";

if(Regex.IsMatch(strTarget, @"(.+?)は(.+?)なり$"))
{
    Console.WriteLine("IsMatch : Match!!");
}

IsMatch : Match!!

Webサイト/アプリ開発, ソフトウェア開発

JSONきれい ~JSON整形ツール~ – instant tools
階層ごとに折りたためる機能が便利。
安心して使えるCDNのリストを作成するツールなどもあり、
痒いところに手が届くサイト。

TM – WebTools
JSONきれい同様、階層ごとに折りたためる。
JSONだけではなく、HTML・JavaScript・CSSの圧縮・整形など
Web周りはここで一通りそろう

The Fastest JSON visualizer – 最速のJSON可視化・解析ツール
JSONきれい同様、階層ごとに折りたためる上、
階層が色分けされており分かりやすい。
項目にアクセスするためのパスなども合わせて表示される。
また、ソースがGitHubで公開されている。

C#

/// <summary>
/// 使用禁止文字の置換
/// </summary>
/// <param name="strData"></param>
/// <returns></returns>
private static string ReplaceInvalidChar(string strData)
{
    string strResult = strData;

    foreach (char invalidChar in Path.GetInvalidFileNameChars())
    {
        while (strResult.IndexOf(invalidChar) >= 0)
        {
            strResult = strResult.Remove(strResult.IndexOf(invalidChar), 1);
        }
    }

    List<string> arrayReplaceChar = new List<string> { "*", "/", "&", """, "\", "
", "
", "	", "<", ">", "[", "]", "{", "}", "|", ":", ";", "?", "!", ",", ".", "=", "~", "$", "%" };

    foreach (string strReplaceChar in arrayReplaceChar)
    {
        strResult = strResult.Replace(strReplaceChar, "");
        strResult = strResult.Replace(Strings.StrConv(strReplaceChar, VbStrConv.Wide), "");
    }

    strResult = strResult.Trim(' ');

    return strResult;
}