mogmo .NET

C#/XAML/VB6たまにC++についてメモ程度に書いていく。あくまで自分用。責任は取れません。

2018-01-01から1年間の記事一覧

aiファイルをXAMLに変換

WPF

Blend for Visual Studio 2013の場合 Blend2013ではaiファイルをインポートすることでXAMLに変換することが可能。 Blend2015以降はこの機能が失くなっているので,要注意。 ファイル > インポート > aiファイルを選択 > XAMLを自動生成&表示 拡張機能を追加…

ListViewの列の文字列を右寄せにする

WPF

ListViewItemのHorizontalContentAlignmentプロパティをStretchにする。 ポイントはこれ。 ListViewItemの横幅をStretchにしないと,せっかくTextAlignmentを設定しても右寄せにはならない。 <UserControl.Resources> <ResourceDictionary> <Style TargetType="{x:Type ListViewItem}"> <Setter Property="HorizontalContentAlignment" Value="Stret</style></resourcedictionary></usercontrol.resources>…

メトロデザインWindowにDropShadowをつける

WPF

WindowChromeとWindowのBackgroundの背景色を透明にすることで実現可能です。 2018/12/10 追記----------- WindowStyle="None"に設定しないでメトロ×DropShadowを実装した かたですが,方法がみつからず。 - Window枠を消す WindowChromeを使用する。 https:…

Windowの枠を消す

WPF

Window枠の消し方 方法は以下の2通りある。 WindowChromeでデフォルトの枠を消す WindowStyleプロパティをNoneにする WindowChromeを実装する WindowChromeクラスの詳細は,MicroSoft Docsに記述されています。 WindowChrome クラス (System.Windows.Shell) …

コンボボックスのItemsSourceはどこに実装すべきか

WPF

以下のサイト様が参考になりました。 qiita.com

C#からDataGrid内のコントロールにアクセスする

WPF

DataGridでColumnsにDataGridTrmplateColumnを置き,表示する内容を色々とカスタマイズすることが多い。 ここでたまに困るのが,DataGridTemplateColumnの中のDataTemplate内のコントロールにアクセスするとき。何度かつまづいたので,メモする。 参考URL ミ…

CollectionViewクラスを使ってDataGridをグループ化する

WPF

CollectionViewクラスには,グループ化および並べ替えを実装する機能を持つIEnumerableインターフェイスが用意されています。 CollectionViewSourceクラスでは,CollectionView クラスのプロパティを XAML から設定することができます。このCollectionViewSo…

ウィンドウのタイトルバーを無くす

WPF

名前は何て言うんでしょうね。 Zuneライクやメトロライクと言われている方が多いみたいです。さて,その実装方法についてですが,ぐらばくさんが記事に載せている通りです。 WPF で Zune のようなウィンドウを作る | grabacr.nét以下はもしこの記事が消えて…

Enumの値をコンボボックスに表示する(リソース文字列を使う)

WPF

アプリ開発をしていると,文字列はリソースで管理することが多い。 しかし,Display や Descriptionなどの属性引数にリソース文字列を使おうとすると,コンパイラ エラー CS0182(属性引数には定数式,typeof 式,または属性パラメーター型の配列の作成式で…

Enumの値をコンボボックスに表示する(Description属性)

WPF

基本的にはDisplay属性と変わらないのでもろもろ省略する。 コンボボックスに表示するEnumをつくる public enum DescriptionCountry { [Description("ニッポン")] Japane, [Description("アメリカ")] America, [Description("マレーシア")] Malaysia } Descr…

Enumの値をコンボボックスに表示する(Display属性)

WPF

Display属性を使ってEnumの値をコンボボックスのアイテムに表示するものを作った。 Description属性を使う場合は別の記事にまとめる。 コンボボックスに表示するEnumをつくる 参照にSystem.ComponentModel.DataAnnotationsを追加すると,Display属性が使える…

UIを含むクラスライブラリプロジェクトに必要な参照設定

WPF

コントロールを含むライブラリのためのプロジェクトではなく,通常のクラスライブラリのプロジェクトで開発を開始した場合,ウィンドウ等が追加できない状態になる。 この解決方法を書いていきます。 参照の追加 以下の4つを参照に追加する。 アセンブリ > …

Gitで日本語パスが読み込めないエラーの対処法

Git

SourceTreeのバージョン2.17で日本語パスが読めないエラーが発生した。2.10にダウングレードすると異常なし。 (2018/10/19現在)日本語パスはあまり使わないほうが良いみたい。Tagsで各リリース版のGitをダウンロードできる模様 Releases · git-for-windows…

DataTriggerを使う

WPF

DataTriggerって? 「バインドしているデータの値が**の時,コントロールの**プロパティを**する」等言う動作を定義できる。 DataをTriggerにして何かするよ~って感じだね。 DataTriggerのサンプル サンプルをメモしておく。 以下のようなラジオボタ…

Dllの読み込み場所を移動する

WPF

フォルダ構成 今回,Dllの置き場所は,exeの作られるフォルダの直下の「dll」フォルダにまとめることにする。 Dllの読み込み場所をApp.configで指定 assemblyBindingタグ内にprobingタグを指定すればよい。 このconfigファイルの中身を見てアプリはdllフォル…

(旧)ScrollBarのStyleをカスタマイズ

WPF

ScrollViewerのスタイルをいじってみる。2018/11/05 現在:ScrollViewerのStyleを作成して,x:Key = {StaticResource {x:Type ScrollViewer}} とすると,テキストボックスで不具合が起きたり,DataGridではデフォルトの見た目になっていた。 対処法を別記事…

MouseイベントなどをViewModelで受け取る

WPF

XAMLでインタラクションを使用する方法 以下の二つを設定します。 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"と xmlns:core="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactio…

Windowの背景透明化

WPF

Windowの背景透明化を行うには,Windowコントロールのプロパティを以下のようにする。 <Window x:Class:*** WindowStyle="None" AllowsTransparency="True" Background="Transparent" ... /> こんな感じになった。 なにやらボタンとかも透明化されてしまっている。</window>

コントロールテンプレートを使ってみる

WPF

リソースディクショナリに何度も使うWindowのスタイルを定義する。 スタイルを書いていくリソースディクショナリの作成 コントロールテンプレートをリソースディクショナリに書いていくことにしたので,ファイルを作成。 こういうコントロールテンプレートが…

C# コードスニペット

コードスニペットとは コードの挿入補助機能のこと。 決められた省略コードを打つと自動でforループ文などを入力してくれる。 使い方 決められた省略コードを入力し,Tabキーを2回押すと コード全文が自動表示&編集モードになる。 下図の状態 よく使うコー…

デザイン時のDataContextを設定する

mc:Ignorable名前空間 mc:Ignorable名前空間はWPFで定義されているnamespaceです。 設計時にデザイナーが使用する情報ですが,コンパイル時は無視される情報となります。 WPFアプリを作成すると,自動でmc:Ignorable="d"が実装されていると思います。

DataGrid.ColumnHeaderStyleにイベントを実装したい。案1|右クリックイベントでひろう→NG <DataGrid MouseRightButtonUp="DataGrid_MouseRightButtonUp"> </DataGrid>

WPF DataGrid内のボタンのCommandをバインドさせる

DataGridにボタンを表示して,CommandをBindingさせようとしたら詰まった。 以下のサイトを参考にした。 2018/09/18 追記 これだと,Widthが狭くてボタン領域が初期化時に描画されないとき,Binding Error 4が発生する。 thinkami.hatenablog.com