ユーザ用ツール

サイト用ツール


it技術:dotnet:wpf開発

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
it技術:dotnet:wpf開発 [2017/11/15 15:54] – [表示文字幅の取得] yajuadminit技術:dotnet:wpf開発 [2017/12/07 18:26] – [メモ] yajuadmin
行 86: 行 86:
 [[http://code.i-harness.com/ja/q/238d7a|wpf - 多くのUIコンポーネントがこれを必要とするため、呼び出しスレッドはSTAでなければなりません]] [[http://code.i-harness.com/ja/q/238d7a|wpf - 多くのUIコンポーネントがこれを必要とするため、呼び出しスレッドはSTAでなければなりません]]
  
-UIスレッドで動作させために、Application.Current.Dispatcher.Invoke((Action)delegate内で画面表示処理を呼び出す。+UIスレッドで動作させために、下記内で画面表示処理を呼び出す。
 <code csharp> <code csharp>
 +Application.Current.Dispatcher.Invoke((Action)delegate
 +</code>
 +
 +<code csharp sample>
 private void watcher_Changed(Object source, FileSystemEventArgs e) private void watcher_Changed(Object source, FileSystemEventArgs e)
 { {
行 132: 行 136:
 [[http://blog.xin9le.net/entry/2013/10/27/195614|ボタンをプログラム側からクリックする]]\\ [[http://blog.xin9le.net/entry/2013/10/27/195614|ボタンをプログラム側からクリックする]]\\
 [[http://dobon.net/vb/dotnet/control/performclick.html|Buttonのクリックイベントを発生させる]] [[http://dobon.net/vb/dotnet/control/performclick.html|Buttonのクリックイベントを発生させる]]
 +
 +==== 最大化を禁止させる ====
 +<code csharp sample>
 +//最小化ボタンは有効、最大化ボタンは表示されてるけど、無効。
 +this.ResizeMode = ResizeMode.CanMinimize;
 +</code>
 +[[http://d.hatena.ne.jp/tako222/20090827/1251379855|WPFでGUIアプリケーションを作成する際のメモ その3]]
 +
 +==== Bindingのソースが更新されない ====
 +ViewModelにINotifyPropertyChangedインターフェイスを実装する必要がある。\\
 +  * [[http://blog.okazuki.jp/entry/2014/09/15/201110|WPF4.5入門 その55 「Binding その1」]]
 +  * [[http://blog.okazuki.jp/entry/20091214/1260803280|INotifyPropertyChangedのいけてる実装]]
 +  * [[http://var.blog.jp/archives/67585928.html|Binding Source が更新されない]]
 +
 +INotifyPropertyChangedを実装はイケてないので、ReactivePropertyを使用する。\\
 +NuGetから「ReactiveProperty 3.6.0」で入手する。
 +
 +  * [[https://qiita.com/ledsun/items/6f4ef754e5ae2507e531|INotifyPropertyChanged実装のありえない面倒くささと、ReactivePropertyの信じられない素晴らしさ]]
 +  * [[http://blog.okazuki.jp/entry/2015/12/05/221154|MVVMをリアクティブプログラミングで快適にReactivePropertyオーバービュー]]
 +
 +==== ListViewの選択背景色を変更する ====
 +=== XAMLでの変更方法 ===
 +[[https://stackoverflow.com/questions/4246795/change-selection-color-of-wpf-listviewitem|Change selection-color of WPF ListViewItem]]
 +
 +<code xml>
 +<ListView.ItemContainerStyle>
 +    <Style TargetType="{x:Type ListViewItem}">
 +        <Style.Triggers>
 +            <Trigger Property="IsMouseOver" Value="True">
 +                <Setter Property="Background" Value="midnightblue" />
 +            </Trigger>
 +        </Style.Triggers>
 +    </Style>
 +</ListView.ItemContainerStyle>
 +</code>
 +
 +=== コードによる変更方法 ===
 +[[https://www.codeproject.com/Articles/29699/WPF-How-to-create-Styles-in-code-and-magical-Conte|WPF: How to create Styles in code/and magical Content]]
 +
 +<code csharp>
 +// 選択時の背景色
 +Style styleListViewItem = new Style(typeof(ListViewItem));
 +Trigger triggerIsMouseOver = new Trigger { Property = ListViewItem.IsMouseOverProperty, Value = true };
 +triggerIsMouseOver.Setters.Add(new Setter(ListViewItem.BackgroundProperty, Brash.Gold)) SolidColorBrush(selectbackColor)));
 +styleListViewItem.Triggers.Add(triggerIsMouseOver);
 +lstRework.ItemContainerStyle = styleListViewItem;
 +</code>
 ==== メモ ==== ==== メモ ====
   * [[https://stackoverflow.com/questions/632519/how-can-i-hide-the-header-of-a-listview-wpf|How can I hide the header of a listview WPF?]]   * [[https://stackoverflow.com/questions/632519/how-can-i-hide-the-header-of-a-listview-wpf|How can I hide the header of a listview WPF?]]
行 142: 行 193:
   * [[http://hogetan.blog24.fc2.com/blog-entry-7.html|WPFでリサイズ可能な枠なしウィンドウを作成する]]   * [[http://hogetan.blog24.fc2.com/blog-entry-7.html|WPFでリサイズ可能な枠なしウィンドウを作成する]]
   * [[http://d.hatena.ne.jp/CoMo/20110421/1303394273|WPFのレイアウトのTips]]   * [[http://d.hatena.ne.jp/CoMo/20110421/1303394273|WPFのレイアウトのTips]]
 +  * [[http://sourcechord.hatenablog.com/entry/20131028/1382978042|アプリの多重起動を防止する]]
it技術/dotnet/wpf開発.txt · 最終更新: 2018/01/17 18:19 by yajuadmin