WPF
メイン画面を起動する前に独自のダイアログを表示したくて調べた。 ログイン画面を表示する時なんかが多いかもしれない。 問題点 App.xaml.csでMainWindowを表示する前にダイアログを表示するコードを書いて実行すると,ダイアログを閉じたらアプリケーショ…
参考 WPF/XAML : DataGrid の表示内容を TextBox への入力内容でフィルタリングする - i++ 上記サイトにお世話になりました。 ポイントは以下3つとのこと。 DataGrid の ItemsSource に CollectionViewSource.View を使う CollectionViewSource.Filter にフ…
現象 Visual Studio 2017でWPFアプリを開発中に, テキストボックスを右クリックするとVisual Studioがフリーズする現象が起きた。 どのアプリを作ってもフリーズする。困る。Windowsのイベントビューアを見たらこんなエラーが出ていた。Windows イベントビ…
以下サイトが参考になりそう。WPFでの入力値検証 - SourceChordWPFでの入力値検証・その2 ~INotifyDataErrorInfoを使ってみる~ - SourceChord
ItemContainerStyleでListBoxItemのスタイルのPaddingを0にすればよい。 <ItemsControl.ItemContainerStyle> <Style TargetType="{x:Type ListBoxItem}"> <Setter Property="BorderThickness" Value="1"/> <Setter Property="Margin" Value="0"/> <Setter Property="Padding" Value="0"/> </Style> </ItemsControl.ItemContainerStyle>
なんかうまく動かないんだよなぁ。。調査中。 まとまったら文章整理する。 コレクション型依存関係プロパティ | Microsoft Docs
いつも調べちゃうのでメモ。 INotifyPropertyChangedを継承する プロパティの変更通知をViewに反映するので,ViewModelに継承させることが多い。 場合によってはModelに継承させることもしばしば。NugetからPrismパッケージをインストールして使用すると,次…
結論 対策1 オプション設定を変更 [ツール] ->[オプション] -> [環境] -> [フォントおよび色] -> 設定の表示を「XAML デザイナー」にして配色を白に変更することで対策可能。オプション設定設定変更後のXAMLデザイナー 対策2 テーマエディタを使用 こちらは…
Blend for Visual Studio 2013の場合 Blend2013ではaiファイルをインポートすることでXAMLに変換することが可能。 Blend2015以降はこの機能が失くなっているので,要注意。 ファイル > インポート > aiファイルを選択 > XAMLを自動生成&表示 拡張機能を追加…
ListViewItemのHorizontalContentAlignmentプロパティをStretchにする。 ポイントはこれ。 ListViewItemの横幅をStretchにしないと,せっかくTextAlignmentを設定しても右寄せにはならない。 <UserControl.Resources> <ResourceDictionary> <Style TargetType="{x:Type ListViewItem}"> <Setter Property="HorizontalContentAlignment" Value="Stret</style></resourcedictionary></usercontrol.resources>…
WindowChromeとWindowのBackgroundの背景色を透明にすることで実現可能です。 2018/12/10 追記----------- WindowStyle="None"に設定しないでメトロ×DropShadowを実装した かたですが,方法がみつからず。 - Window枠を消す WindowChromeを使用する。 https:…
Window枠の消し方 方法は以下の2通りある。 WindowChromeでデフォルトの枠を消す WindowStyleプロパティをNoneにする WindowChromeを実装する WindowChromeクラスの詳細は,MicroSoft Docsに記述されています。 WindowChrome クラス (System.Windows.Shell) …
以下のサイト様が参考になりました。 qiita.com
DataGridでColumnsにDataGridTrmplateColumnを置き,表示する内容を色々とカスタマイズすることが多い。 ここでたまに困るのが,DataGridTemplateColumnの中のDataTemplate内のコントロールにアクセスするとき。何度かつまづいたので,メモする。 参考URL ミ…
CollectionViewクラスには,グループ化および並べ替えを実装する機能を持つIEnumerableインターフェイスが用意されています。 CollectionViewSourceクラスでは,CollectionView クラスのプロパティを XAML から設定することができます。このCollectionViewSo…
名前は何て言うんでしょうね。 Zuneライクやメトロライクと言われている方が多いみたいです。さて,その実装方法についてですが,ぐらばくさんが記事に載せている通りです。 WPF で Zune のようなウィンドウを作る | grabacr.nét以下はもしこの記事が消えて…
アプリ開発をしていると,文字列はリソースで管理することが多い。 しかし,Display や Descriptionなどの属性引数にリソース文字列を使おうとすると,コンパイラ エラー CS0182(属性引数には定数式,typeof 式,または属性パラメーター型の配列の作成式で…
基本的にはDisplay属性と変わらないのでもろもろ省略する。 コンボボックスに表示するEnumをつくる public enum DescriptionCountry { [Description("ニッポン")] Japane, [Description("アメリカ")] America, [Description("マレーシア")] Malaysia } Descr…
Display属性を使ってEnumの値をコンボボックスのアイテムに表示するものを作った。 Description属性を使う場合は別の記事にまとめる。 コンボボックスに表示するEnumをつくる 参照にSystem.ComponentModel.DataAnnotationsを追加すると,Display属性が使える…
コントロールを含むライブラリのためのプロジェクトではなく,通常のクラスライブラリのプロジェクトで開発を開始した場合,ウィンドウ等が追加できない状態になる。 この解決方法を書いていきます。 参照の追加 以下の4つを参照に追加する。 アセンブリ > …
DataTriggerって? 「バインドしているデータの値が**の時,コントロールの**プロパティを**する」等言う動作を定義できる。 DataをTriggerにして何かするよ~って感じだね。 DataTriggerのサンプル サンプルをメモしておく。 以下のようなラジオボタ…
フォルダ構成 今回,Dllの置き場所は,exeの作られるフォルダの直下の「dll」フォルダにまとめることにする。 Dllの読み込み場所をApp.configで指定 assemblyBindingタグ内にprobingタグを指定すればよい。 このconfigファイルの中身を見てアプリはdllフォル…
ScrollViewerのスタイルをいじってみる。2018/11/05 現在:ScrollViewerのStyleを作成して,x:Key = {StaticResource {x:Type ScrollViewer}} とすると,テキストボックスで不具合が起きたり,DataGridではデフォルトの見た目になっていた。 対処法を別記事…
XAMLでインタラクションを使用する方法 以下の二つを設定します。 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"と xmlns:core="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactio…
Windowの背景透明化を行うには,Windowコントロールのプロパティを以下のようにする。 <Window x:Class:*** WindowStyle="None" AllowsTransparency="True" Background="Transparent" ... /> こんな感じになった。 なにやらボタンとかも透明化されてしまっている。</window>
リソースディクショナリに何度も使うWindowのスタイルを定義する。 スタイルを書いていくリソースディクショナリの作成 コントロールテンプレートをリソースディクショナリに書いていくことにしたので,ファイルを作成。 こういうコントロールテンプレートが…