Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

WinRT

シンボルを利用したアイコン

以下を参照 Segoe MDL2 アイコンのガイドライン - Windows app developmentwindows8.1ではSegoe UI Symbolを使う。

Holdingでアイテムも取得したい。

ListView自体のHoldingでなく ItemTemplateのGrid等のHoldingを取ればそのsenderのDataContextにBindingしているアイテムが入っている。

ナビゲーション

NavigationHelperを用いる public HogePage() { this.InitializeComponent(); this.navigationHelper = new NavigationHelper(this); this.navigationHelper.LoadState += navigationHelper_LoadState; this.navigationHelper.SaveState += navigationHelper…

遷移にアニメーションをつけたい。

PageのTransitionsにTransitionCollectionのEntranceThemeTransitionを設定し微調整する。 <Page.Transitions> <TransitionCollection> <EntranceThemeTransition> </EntranceThemeTransition> </TransitionCollection> </Page.Transitions>

実行中のメソッド名を知りたいとき

リフレクションでgetCurrentMethodというのを見つけたがwinRTでは使えないようだ。 以下でRunTimeのCompileServicesを使った方法が紹介されていた。stackoverflow.com

バインディング ルーズに

何かUIになにかの値Bをバインディングさせたいが、この値は加工 する必要があるとする。IValueConverterを使わないとすると <UI.hoge = {Binding B, Mode=TwoWay} /> でやりたいとする。getterでごにょごにょすればいけるようだ。2. プロパティとして public B { get { return hoge() } set { hoge(</ui.hoge>…

リソースを共有する。ResourceDictionary

こんにちは。 今回は作ったスタイルをリソースディクショナリとして保存して使いまわす方法についてです。 分割することでxaml自体もみやすくなると思います。 方法は簡単で、リソースディクショナリを作ってApplication.xamlのリソースから読み込むだけです…

バインドしたデータのデザイン上の仮表示をする。d:DataContext

こんにちは。バインドを使うと動的に表示が変更されて便利ですがデザインを開発環境から確認したい場合の仮データを設定することがd:DataContextを用いて達成できます。前に作ったMooクラスをデザイン上のみMooTestクラスに置き換えてみます。 public class …

バインドする文字列をConverterで変換する。

どうもこんにちは。本日はバインドしてある文字列をConverterで変換してみます。 やることは、Converterを用意し、 それをxamlのリソースで定義しておいて、バインド時に設定するだけです。ConverterはIValueConveterを実装します。ここでは!!をつけるという…

バインドしておいてコードから変更を通知する。

どうもこんにちは続いてバインドしておいてコードで変化があったら通知するやりかたです。 ボタンを押すと、テキストを変化させ、その変化がUI側にPropertyChangedとして通知されテキストが変化します。 public class Moo : INotifyPropertyChanged { privat…

オリジナルクラスをxamlで使う

こんにちは、なんとなく記事っぽくしようと思いこんな出だしではじまります。 Windowsプログラミング入門(俺が)という記事です。最初はオリジナルのクラスをxamlで使ってみようという内容です。 public class Moo { public string txt{get; set;} public Moo…

ListViewの既定アニメーションの制御

スタイルの Transitionに設定されているものを削除

Lisviewのアイテムのスクロール時の絶対座標取得

ScrollViewerのViewChanged,ViewChangingのイベントを呼び出す。 それをするにはListViewのテンプレートをスタイルで定義。イベントが呼ばれたら ScrollViewer sv = sender as ScrollViewer; pt = this.TransformToVisual(null).TransformPoint(new Point(0,…

StyleSelector

文字通りスタイルを選択するクラス使うスタイルを以下で渡す。 protected override Style SelectStyleCore(object item, DependencyObject container)

Visual Studio2013

プロジェクトのアイコンの意味 点線のアイコンは隠しフォルダー。[すべてのファイルを表示]で見える。 以下に詳しい。 連載:簡単! Visual Studio 2013入門:第2回 Visual Studio 2013の基礎を知る (3/4) - @IT

パス、コピー

インストールした場所 StorageFolder stragefolder = Windows.ApplicationModel.Package.Current.InstalledLocation; StorageFolder datamodelFolder = await stragefolder.GetFolderAsync("FolderA"); StorageFile dbFileX = await datamodelFolder.GetFile…

SQLite

以下を参照している。WinRTでSQLiteが使えるようになったみたいなので試してみました - かずきのBlog@hatenaSQLite のプログラミング (Android と Windows ストア アプリ) - Windows app development SQLite for Windows Runtime パッケージ c#から使うにはs…

WinRTプログラミングのまとめ

Buttonのカスタマイズ - Rodhos Soft Buttonのカスタマイズ - Rodhos Soft

設定画面を出す

SettingPaneにメソッド登録 SettingsPane.GetForCurrentView().CommandsRequested += OnCommandsRequested; メソッド内に設定画面内に設定項目コマンドを作っていく。 1画面全体出したいならNavigate、部分画面ならSettingsFlyoutで。 private void OnComma…

GridViewで横にならべる

ItemsPanelTemplateをいじる。 横にならべるWrapGridを用意しMaximumRowsOrColumnsで横の最大数を設定する。VariableSizedWrapGridを使うとreorderができなくなるので注意(拡張 Extending GridView with Drag and Drop for Grouping and Variable Sized Ite…

Buttonのカスタマイズ

テンプレートの構成 <Grid> <VisualStateManager.VisualStateGroups> 略 </VisualStateManager.VisualStateGroups> <Border> <ContentPresenter/> </Border> <Rectangle /> <Rectangle /> </Grid> テンプレートを編集してみる まずボタンのテンプレートを編集を選択するとリソースにスタイルが定義される。 以下のような長い設定が自動的に作られる。。 <Style x:Key="ButtonStyle2" TargetType="Button">

Listのcast

BaseクラスをAで派生したクラスをBとする。 List<A> listA = listB.Cast<A>().ToList();</a></a>

Converterで値を変える

ボタンをバインディングしているブール値で画像を切り替えたいとする。 <UserControl.Resources> <local:ButtonConverter x:Key="bConverter"/> </UserControl.Resources> <Button Foreground="{Binding flag, Converter={StaticResource bConverter}}" /> のように、Conveterを通じて変換することになる。Converterの定義は以下のようにする。 class ButtonConverter : IValueConverter { obj…</button>

Binding

XAMLで他の要素と <Hoge Name="name" Poi ="pxpxpx"/> <Hoge Poi = "{Binding ElemntName=name, Path=Poi}"/></hoge></hoge>

ロゴの画像について

ピクセル密度に合わせたスケーリングのガイドライン - Windows app development

ViewModelの分離

XAMLとビハインドコードをビューとすると、 そこからロジックを分離させるのにViewModelを作る。ViewModelはINotifyPropertyChangedを実装し PageのDataContextにViewModelを設定しておけばビューと値をバインディングできる。 また、クリックイベントはICom…

ItemsControl

アイテムのコレクション表示クラス以下を参照するのがわかりやすい。 http://grabacr.net/archives/1240 主要プロパティ Template property 全体の外観 ItemsPanel property アイテム達全体の外観(Panelで指定) ItemContainerStyle property アイテムを包…

IItemContainerMapping

インデックスと対応するコンテナの関係のインターフェイス。ItemsControlが継承している。 ContainerFromIndex ContainerFromItem IndexFromContainer ItemFromContainer

UI系の継承関係図

上下逆だがこのようにわかれている。複雑。。

UIElement

UIの基盤クラスタップイベントなどを取得