タグ

XAMLに関するJHashimotoのブックマーク (32)

  • マイクロソフト、Calc.exe(電卓)をオープンソースとしてGitHubで公開

    マイクロソフトは、Windows 10に標準で含まれているCalc.exe(日語版では「電卓」)のソースコードをオープンソースとしてGitHubで公開したことを明らかにしました(追記:オープンソース化は3月に行われていました。ちょっと記事にするのが遅かったようです。すいません)。 Calc.exeのオープンソース化の狙いは、最新のWindowsアプリケーションを開発するための見として使ってもらうことにあるようです。 というのも右の画面を見ていただくと分かるように、電卓は半透明のウィンドウやウィンドウの横幅に合わせてコントロールの大きさが変化するなど、Windowsの最新のユーザーインターフェイス技術などを用いて作られているのです。 「Announcing the Open Sourcing of Windows Calculator」では次のように説明されています。 Reviewing

    マイクロソフト、Calc.exe(電卓)をオープンソースとしてGitHubで公開
  • XAMLを書くときに使っている拡張機能 - tech.guitarrapc.cóm

    UWP アプリを書く必要があり、何度か挫折したXAMLに真剣に取り組んでいます。 今回は、XAMLを書くにあたって自分が導入している拡張機能とめちゃめちゃ便利なアプリの紹介です。 目次 目次 拡張機能 XamlStyler Inline Color Picker XAML 記述の確認 XAML Controls Gallery WindowsCompositionSamples WindowsCommunityToolkit まとめ 拡張機能 次の2つをいれることで、XAML に悩まされることが減ったのでお勧めです。 ときにStylerは、いわゆる自動的なフォーマッターでオススメです。 私がこういう拡張をいれる時に共通しているのは、「機械的に自動化されるのに慣れるのは大事」ということで、フォーマッターはその中で優先して導入すると効果があると感じます。 marketplace.visuals

    XAMLを書くときに使っている拡張機能 - tech.guitarrapc.cóm
  • Generic型を使用した汎用Converter(CodeSnippet付き) - Qiita

    概要 WPFでViewModel⇔View間でデータを変換する際にはIValueConverterを継承したConverterを定義することがよくあります。 しかしこのIValueConverterは特定の型間の変換に用いることがほとんどなのにもかかわらず、 object型で入出力するので書きづらいしエラーにも気づきづらいです。 そこで、Generic型を使用した汎用抽象Converterクラス経由で継承することでこの問題を解決します。 実行結果 題材とするデモアプリの実行結果です。 起動時に青い背景のTextBlockに長い文字列があり見切れています。 下のIsTrimをチェックすると文字列の見切れている部分が...と表示されます。 IsTrimの代わりにその下のIsWrappをチェックすると文字列が折り返して表示されます。 デモアプリコード デモアプリのコードです。 MainWindo

    Generic型を使用した汎用Converter(CodeSnippet付き) - Qiita
  • WPF/TreeView - src256 wiki

    ItemContainerStyleで指定する。 <TreeView> <TreeView.ItemContainerStyle> <Style TargetType="TreeViewItem"> <Setter Property="IsExpanded" Value="True"/> </Style> </TreeView> ↑ SelectedItem in a WPF Treeview - Stack OverflowによるとTreeViewのSelectedItemプロパティはreadonlyなのでxamlでBindingできない。OnSelectedItemChangedを使ってやるしかないらしい。 もしくはItemContainerStyleで指定する。ItemsSourceにバインドしているオブジェクトのIsSelectedプロパティで判断する。 <TreeView Ite

    JHashimoto
    JHashimoto 2016/05/30
    選択中のアイテムをViewModelで参照する方法。
  • wpf mvvm treeview get selected item - CodeProject

    JHashimoto
    JHashimoto 2016/05/30
    選択中のアイテムをViewModelで参照する方法。
  • Re[4]: MVVMでTreeViewの選択したアイテムの取得

    分類:[.NET 全般] こんにちは、倉田 有大です。 TreeViewを継承したFLPTreeViewというカスタムコントロールを作成しました。 FilerView.xaml <local2:FLPTreeView x:Name="flpTreeView" SusieCenterControl="{Binding SusieCenterControl}" VisibleLibraryExtensions="{Binding VisibleLibraryExtensions}" RootPath="" /> 上記のように使用しているのですが、ツリービューのアイテムを選択した事をどうやって、ViewModelに通知すればよいでしょうか? SelectedItemをバインディングしようとおもったら、依存プロパティーではなかったのでできませんでした。 最終手段としては、Selectedイベントか

    JHashimoto
    JHashimoto 2016/05/30
    選択中のアイテムをViewModelで参照する方法。
  • Data binding to SelectedItem in a WPF Treeview

    How can I retrieve the item that is selected in a WPF-treeview? I want to do this in XAML, because I want to bind it. You might think that it is SelectedItem but apparently that does not exist is readonly and therefore unusable. This is what I want to do: <TreeView ItemsSource="{Binding Path=Model.Clusters}" ItemTemplate="{StaticResource ClusterTemplate}" SelectedItem="{Binding Path=Model.Selected

    Data binding to SelectedItem in a WPF Treeview
    JHashimoto
    JHashimoto 2016/05/30
    選択中のアイテムをViewModelで参照する方法。
  • [WPF][MVVM] TreeViewのノードを選択状態をdatabindする

    はじめに TreeViewにはSelectedItemプロパティが存在する。ViewModelのプロパティとdatabindすれば、選択されているobjectにアクセスすることができるが、読み取り専用であるため ViewModelからこのプロパティの変更で、TreeView上の選択されている項目を変更することはできない。 そのかわり、 TreeViewのノードである、TreeViewItemにbindされるViewModelオブジェクト(TreeView.ItemsSourceが返す要素たちそれぞれ)とのdatabindを設定すれば、選択状態(IsSelected)を双方向に反映できる。 前回まで作成したTreeViewを例に。 FolderTreeView.xaml <UserControl : (略) > <TreeView : (略) > <TreeView.ItemContaine

    [WPF][MVVM] TreeViewのノードを選択状態をdatabindする
    JHashimoto
    JHashimoto 2016/05/30
    選択中のアイテムをViewModelで参照する方法。
  • WPF4.5入門 その26 「TreeViewコントロール その2」 - かずきのBlog@hatena

    今回も、前回に引き続きTreeViewコントロールについてみていこうとおもいます。 TreeViewのItemTemplate TreeViewコントロールもDataGridコントロールと同様にItemsSourceプロパティにコレクションを設定することで、任意の型のコレクションのデータを表示できます。TreeViewコントロールのItemTemplateには、木構造のデータを扱うためにDataTemplateを拡張したHierarchicalDataTemplateを使用します。HierarchicalDataTemplateは、通常のDataTemplateと同様にデータの見た目を定義するために使います。DataTemplateと異なる点は、ItemsSourceプロパティに、現在表示している要素の子にあたるものをItemsSourceプロパティに設定する点です。Hierarchica

    WPF4.5入門 その26 「TreeViewコントロール その2」 - かずきのBlog@hatena
    JHashimoto
    JHashimoto 2016/05/29
    "TreeViewコントロールのItemTemplateには、木構造のデータを扱うためにDataTemplateを拡張したHierarchicalDataTemplateを使用します。"
  • WPFサンプル:階層構造をもったデータをTreeViewにバインドする:Gushwell's Dev Notes

    まずはサンプルプログラムの実行時のスクリーンショットを。 TreeViewにデータを表示するということは、そのデータが階層構造を持っているということですから、 TreeViewのバインドするデータは、階層構造をもったクラスということになります。ここでは、Categoryというクラスを定義することとします。 public class Category : ObservableCollection<Category> { public Category() { } public Category(string name) { Name = name; } public string Name { get; set; } public Category Children { get; set; } } Categoryクラスには、Nameプロパティと、Childrenプロパティがあります。Nam

    WPFサンプル:階層構造をもったデータをTreeViewにバインドする:Gushwell's Dev Notes
    JHashimoto
    JHashimoto 2016/05/29
    "TreeViewにどの要素を表示したらよいのかが分かりませんので、 ItemTemplate と HierarchicalDataTemplateを使い、表示する項目がNameプロパティであること、 階層構造として、Childrenプロパティを使うことを指定しています。"
  • TreeView, data binding and multiple templates - The complete WPF tutorial

    JHashimoto
    JHashimoto 2016/05/29
    "The WPF TreeView supports data binding, like pretty much all other WPF controls does, but because the TreeView is hierarchical in nature, a normal DataTemplate often won't suffice. "
  • TreeView クラス (System.Windows.Controls)

    例 TreeView を作成する方法を次のコード サンプルに示します。 <TreeView> <TreeViewItem Header="Employee1"> <TreeViewItem Header="Jesper"/> <TreeViewItem Header="Aaberg"/> <TreeViewItem Header="12345"/> </TreeViewItem> <TreeViewItem Header="Employee2"> <TreeViewItem Header="Dominik"/> <TreeViewItem Header="Paiha"/> <TreeViewItem Header="98765"/> </TreeViewItem> </TreeView> 注釈 TreeView は です ItemsControl。つまり、任意の型 (文字列、画像、パネルな

    TreeView クラス (System.Windows.Controls)
    JHashimoto
    JHashimoto 2016/05/29
    ”展開したり折りたたんだりできるアイテムを保有するツリー構造の階層型データを表示するコントロールを表します。”
  • TreeView に関する「方法」トピック - WPF .NET Framework

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

    TreeView に関する「方法」トピック - WPF .NET Framework
    JHashimoto
    JHashimoto 2016/05/29
    ”このセクションのトピックでは、TreeView コントロールを使用して情報を階層構造で表示する方法について説明します。”
  • TreeView の概要 - WPF .NET Framework

    TreeView コントロールには、折りたたみ可能なノードを使用して、階層構造で情報を表示する方法が用意されています。 このトピックでは、TreeView コントロールと TreeViewItem コントロールについて説明し、その使用法の簡単な例を示します。 TreeViewとは TreeView は、TreeViewItem コントロールを使用することによって項目を入れ子にする ItemsControl です。 TreeView を作成する例を次に示します。 <TreeView Name="myTreeViewEvent" > <TreeViewItem Header="Employee1" IsSelected="True"> <TreeViewItem Header="Jesper Aaberg"/> <TreeViewItem Header="Employee Number"> <

    TreeView の概要 - WPF .NET Framework
    JHashimoto
    JHashimoto 2016/05/29
    "TreeView コントロールは、折りたたみ可能なノードを使用して、階層構造で情報を表示する手段を提供します。 ここでは、TreeView および TreeViewItem コントロールについて説明し、簡単な使用例を示します。"
  • 方法: 深度がわからないデータに TreeView をバインドする - WPF .NET Framework

    深さがわからないデータ ソースに TreeView をバインドすることが必要な場合があります。 これは、質的にデータが再帰的な場合に起こります。たとえば、フォルダーにフォルダーを格納できるファイル システム、従業員が他の従業員を直属の部下とする会社の組織構造などがそうです。 データ ソースには、階層オブジェクト モデルが必要です。 たとえば、Employee クラスには、ある従業員の直属の部下である Employee オブジェクトのコレクションが含まれていることがあります。 データが階層化されていない方法で表されている場合は、データの階層表現を作成する必要があります。 ItemsControl.ItemTemplate プロパティを設定すると、ItemsControl によって各子項目の ItemsControl が生成される場合に、子 ItemsControl では親と同じ ItemT

    方法: 深度がわからないデータに TreeView をバインドする - WPF .NET Framework
    JHashimoto
    JHashimoto 2016/05/29
    "深度がわからないデータ ソースに TreeView をバインドすることが必要になる場合があります。"
  • 方法: TreeView のパフォーマンスを改善する - WPF .NET Framework

    TreeView に含まれる項目が多い場合、ユーザー インターフェイスで読み込みにかかる時間が大幅に遅くなる可能性があります。 VirtualizingStackPanel.IsVirtualizing 添付プロパティを true に設定して、読み込み時間を改善することができます。 また、ユーザーがマウス ホイールを使用したり、スクロール バーのつまみをドラッグしたりして、ユーザーが TreeView をスクロールするときの UI の反応も遅くなることがあります。 VirtualizingStackPanel.VirtualizationMode 添付プロパティを VirtualizationMode.Recycling に設定することで、ユーザーがスクロールしたときの TreeView のパフォーマンスを向上させることができます。 例 説明 次の例では、VirtualizingStack

    方法: TreeView のパフォーマンスを改善する - WPF .NET Framework
    JHashimoto
    JHashimoto 2016/05/29
    "VirtualizingStackPanel.IsVirtualizing 添付プロパティを true に設定することによって、読み込み時間を改善できます。"
  • コントロールのパフォーマンスを最適化する - WPF .NET Framework

    Windows Presentation Foundation (WPF) には、ほとんどの Windows アプリケーションで使用される一般的なユーザーインターフェイス (UI) コンポーネントの多くが含まれています。 このトピックでは、UI のパフォーマンスを向上させる方法について説明します。 大容量のデータ セットの表示 ListView や ComboBox などの WPF コントロールは、アプリケーションで項目のリストを表示するために使用されます。 表示するリストが大きい場合、アプリケーションのパフォーマンスに影響する可能性があります。 これは、標準的なレイアウト システムでは、リスト コントロールに関連付けられた項目ごとにレイアウト コンテナーを作成した後、コンテナーのレイアウト サイズと位置を計算するためです。 通常、すべての項目を同時に表示する必要はありません。その代わりに

    コントロールのパフォーマンスを最適化する - WPF .NET Framework
    JHashimoto
    JHashimoto 2016/05/29
    "WPFには、大半のWindowsアプリケーションで使用される一般的なUIコンポーネントが多数含まれています。 このトピックでは、UIのパフォーマンスを向上させる方法について説明します。"
  • データ テンプレートの概要 - WPF .NET Framework

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。 WPF のデータ テンプレート モデルは、データのプレゼンテーションを定義する優れた柔軟性を提供します。 WPF のコントロールには、データ プレゼンテーションのカスタマイズをサポートする組み込み機能があります。 このトピックでは、最初に DataTemplate の定義方法を示した後、カスタム ロジックに基づくテンプレートの選択や、階層データの表示のサポートなど、他のデータ テンプレート機能について説明します。 必須コンポーネント このトピックは、データ テンプレートの機能に関するものであり、データ バインディングの概念の紹介ではありません。 データ バインディングの基概念については、「データ バインディ

    データ テンプレートの概要 - WPF .NET Framework
  • 方法: DataTemplate によって生成された要素を検索する - WPF .NET Framework

    この例では、DataTemplate によって生成された要素を検索する方法を示します。 例 この例では、いくつかの XML データにバインドされている ListBox があります。 <ListBox Name="myListBox" ItemTemplate="{StaticResource myDataTemplate}" IsSynchronizedWithCurrentItem="True"> <ListBox.ItemsSource> <Binding Source="{StaticResource InventoryData}" XPath="Books/Book"/> </ListBox.ItemsSource> </ListBox> ListBox では、次の DataTemplate が使用されます。 <DataTemplate x:Key="myDataTemplate"

    方法: DataTemplate によって生成された要素を検索する - WPF .NET Framework
    JHashimoto
    JHashimoto 2016/05/29
    "あるListBoxItemのDataTemplateによって生成されたTextBlock要素を取得するには、ListBoxItemを取得し、そのListBoxItem内でContentPresenterを検索し、その ContentPresenterに設定されているDataTemplateに対してFindNameを呼び出す必要があります。"
  • MenuItemとCompositeCollectionをバインド /WPF

    前回 の続き。今回は固定メニューと動的メニューが混在しているケースを考えます。題材は前回に引き続きブラウザのブックマーク。 なお、次回 は今回とは独立した階層メニューの話です。 まず概要を考えましょう。 ウィンドウには上部にメニューが、下部にはブラウザが表示されます。 メニューのトップレベルには「ブックマーク」が一つだけ存在し、その子メニューに、「ブックマークに追加」、区切り線、そして追加済みブックマークの一覧が(全て同じ階層に)表示されます。 「ブックマークに追加」をクリックすると現在表示中のページがブックマークに追加されます。 追加済みブックマークのいずれかをクリックすると、ブラウザはそのブックマークされているページにジャンプします。 さて、前回から修正するコード量が多いので、まず一通りコードを示し、その後に解説を加えることにします。なお、App.xaml / App.xaml.cs

    MenuItemとCompositeCollectionをバインド /WPF