Visual Studio
Windows、Web、モバイル デバイス用のアプリケーションを構築するための統合開発ツールの Microsoft スイートのファミリ。
81 件の質問
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Windows11 23H2、Visual Stadio2022です。
<Grid>
<NavigationView x:Name="NV" PaneDisplayMode="Left">
<Frame x:Name="ContentFrame"/>
</NavigationView>
</Grid>
のようにナビゲーションビューを作成した際、ペイン部とコンテンツ部を区切る為の線がデフォルトで引かれますが、これを非表示とすることはできないのでしょうか。
イメージとしてはWindows11の設定アプリのように左側の目次と右側のコンテンツに境界がないようにしたいです。
FrameのBorderThicknessを0としても表示されたままで、NavigationViewに対応してそうなパラメータも見つからず困っています。
こんな
private void NV_Loaded(object sender, RoutedEventArgs e)
{
var nv = (NavigationView)sender;
var root = FindChildren<Grid>(nv).Where(_ => _.Name == "RootGrid").FirstOrDefault();
if (root != null)
{
if (root.FindName("ContentGrid") is Grid grid)
{
grid.BorderThickness = new Thickness(0, 0, 0, 0);
grid.BorderBrush = null;
grid.CornerRadius = new CornerRadius(0);
//grid.BorderThickness = new Thickness(5, 0, 0, 0);
//grid.BorderBrush = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 255, 0, 0));
//grid.CornerRadius = new CornerRadius(0);
}
}
}
private IEnumerable<T> FindChildren<T>(DependencyObject d) where T : DependencyObject
{
int count = VisualTreeHelper.GetChildrenCount(d);
for (int i = 0; i < count; i++)
{
var child = VisualTreeHelper.GetChild(d, i);
if (child is T t)
{
yield return t;
}
foreach (var grandchild in FindChildren<T>(child))
{
yield return grandchild;
}
}
}
あるいは
private void ContentFrame_Loaded(object sender, RoutedEventArgs e)
{
Frame f = (Frame)sender;
DependencyObject d = f;
while (d != null)
{
if (d is Grid grid && grid.Name == "ContentGrid")
{
grid.BorderThickness = new Thickness(5, 0, 0, 0);
grid.BorderBrush = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 0,255, 0));
grid.CornerRadius = new CornerRadius(0);
break;
}
d = VisualTreeHelper.GetParent(d);
}
}
NavigationViewのテンプレートは"C:\Users[ユーザー名].nuget\packages\microsoft.windowsappsdk[WinUIのバージョン]\lib[ランライムのバージョン]\Microsoft.WinUI\Themes\generic.xaml"にあるので <ControlTemplate TargetType="controls:NavigationView">
で探してください。