かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

UWPアプリでSurface Dialのデフォルトメニューを消す

Surface Dial対応のアプリを作ろうと思ったときにデフォルトのメニューが邪魔なときがあります。

f:id:okazuki:20161113182926p:plain

これは簡単に消すことができます。

// デフォルトメニューを消す
var config = RadialControllerConfiguration.GetForCurrentView();
config.SetDefaultMenuItems(Enumerable.Empty<RadialControllerSystemMenuItemKind>());

RadialControllerConfigurationを取得してSetDefaultMenuItemsRadialControllerSystemMenuItemKindの空のIEnumerableを渡してやればOKです。

注意点が1つあって本当に空のメニューは作れないという点です。 SetDefaultMenuItemsで空を指定しても、プログラムから他のメニューを追加してない場合は、デフォルトの表示になってしまいます。

ということで、自前のメニューを1つ追加してSetDefaultMenuItemsで空を指定した場合の見た目を以下に示します。

f:id:okazuki:20161113183440p:plain