Flyoutを別XAMLにしたときのメモ

Flyoutをストアアプリで使用する場合、多くは、使用するXAMLページに直接描くと思うのですが、これを別XAMLにしてアタッチすることもできます。

別XAMLとして作成する場合、とりあえず「追加>新しい項目>ポップアップの設定」で「SettingsFlyout」を継承したXAMLを作成して

「SettingsFlyout」を「Flyout」にCSもXAMLも書き換えます。

XAML上では「Flyout」で使用できない「IconSource」「Title」「d:DesignWidth」を削除します。

問題点として「Flyout」では「FindName」が使用できないため、「Binding」などに制限がかかります。
「DataContext」でデータバインドはできるので、これを利用してデータのやり取りをすることになります。

作成したXAMLは「FlyoutBase.AttachedFlyout」にアタッチしておきます。
外部とのやり取りは、「Flyout」にイベントを作成公開してやり取りします。

オープン、クローズはベースのイベントとして使用できるので、クローズ時にデータを初期化します。
名前を追うことはできないので、FrameworkElementを追いかけるか、下記のようにバインドしたプロパティデータをリセットして初期化します。

        private void Flyout_Closed(object sender, object e)
        {
            var con = this.Content;

            ((StackPanel)con).DataContext = new NewProp();
        }

手間がかかるので、使用するXAMLページにFlyoutを書き込んだほうが名前の仕様もできるので分離するのでなければそのほうがいいでしょう。

WinRT XAML Toolkit – Composition

WinRT XAML Toolkit – CompositionWinRT XAML ToolkitにWriteableBitmapやChart等が含まれています。
NuGetのパッケージマネージャーコンソール経由で現在「1.5.4」が導入可能です。

CompositionにはSharpDXも含まれているので、少し容量が大きくなるのでWriteableBitmapやChart(グラフ)が必要なくWinRT XAML Toolkitに含まれているコンポーネントが必要な場合はComposition無しのWinRT XAML Toolkitを入れましょう。

Chart(グラフ)を使用する場合はツールボックスに表示されないので。
XAMLに下記を追加

xmlns:Charting="using:WinRTXamlToolkit.Controls.DataVisualization.Charting"

XAMLでの実態(線グラフ)

						<Charting:Chart x:Uid="LineChart" x:Name="LineChart" Title="グラフ" BorderBrush="#FF191B30" Foreground="#FF191B30">
							<Charting:LineSeries x:Name="LineSeries"
								Title="線タイトル"        
								IndependentValueBinding="{Binding Name}"
								DependentValueBinding="{Binding Value}"
								IsSelectionEnabled="True">
								<Charting:LineSeries.DataContext>
									<Style TargetType="Charting:LineDataPoint">
										<Setter Property="Background" Value="DarkBlue"/>
									</Style>
								</Charting:LineSeries.DataContext>
							</Charting:LineSeries>
						</Charting:Chart>

コード側の実装例

            ChartItems = new ObservableCollection(GraphList);
            ((LineSeries)Chart.Series[0]).ItemsSource = ChartItems ;

線グラフ以外にも、円グラフ、棒グラフなどが可能です

TABLET PC – Enhanced Tablet Driver 7.1.2

WACOMのタブレットPC向けドライバが7.1.2になりWindows8.1に対応しているようです。
Surface Pro / Pro2で「Wintab対応(Photoshopなどでの筆圧検知)」をする場合には必要です。
自己責任でどうぞ。

ダウンロード先(英語):Wacom Feel Driver | Wacom Americas

SQLite for Windows Runtime to Windows 8.1

以前の環境を引き継いでの開発の場合「SQLite for Windows Runtime」が利用している「Microsoft Visual C++ Runtime Package」がVer11.0なためWindows8.1用には使用できません。

SQLite Download Page
に「sqlite-winrt81-3080002.vsix」があるので、これをDLしてインストールすることで、Windows8.1用ストアアプリでも使用できるようになります。

インストールすると参照からWindows拡張に「SQLite for Windows Runtime (Windows 8.1)」があるのでこれを有効化して使用することができます。

新規で開発環境を作った場合なら「拡張機能と更新プログラム」でSQLiteを検索することで「SQLite for Windows Runtime (Windows 8.1)」が表示されるかもしれませんが、出てこない場合は同じくDLしてインストールしましょう。