質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

1737閲覧

Window Chromeを使用したウィンドウでウィンドウ上部にメニューを配置するとメニューを開くことができない

退会済みユーザー

退会済みユーザー

総合スコア0

.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

XAML

XAML(Extensible Application Markup Language)はWPF、Silverlight、Windows PhoneそしてWindows Store appsでユーザーインターフェースを定義するために使われるXML言語です。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2021/10/30 11:38

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
C#とWPFでメモ帳を作っています。
Window Chromeを使ってタイトルバーを消して、ウィンドウの上部にメニューを配置すると
メニューを開くことができなくなってしまいました。
メニューを開けるようにするにはどうすればよいのでしょうか?

該当のソースコード

XAML

1<Window x:Class="ArCrowd_Code.EditorWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6 xmlns:local="clr-namespace:ArCrowd_Code" 7 xmlns:System="clr-namespace:System;assembly=mscorlib" 8 mc:Ignorable="d" 9 Style="{DynamicResource DefaultWindowStyle}" 10 Title="EditorWindow" Height="750" Width="1280" WindowStyle="None" Background="#FF494949"> 11 <Window.Resources> 12 <System:Double x:Key="CaptionHeight">52</System:Double> 13 <Style TargetType="{x:Type Window}" x:Key="DefaultWindowStyle"> 14 <Setter Property="WindowChrome.WindowChrome"> 15 <Setter.Value> 16 <WindowChrome GlassFrameThickness="0" ResizeBorderThickness="5" UseAeroCaptionButtons="False" CaptionHeight="{DynamicResource CaptionHeight}" /> 17 </Setter.Value> 18 </Setter> 19 <Setter Property="SnapsToDevicePixels" Value="True"/> 20 <Setter Property="UseLayoutRounding" Value="True"/> 21 <Setter Property="Background" Value="#FF494949"/> 22 <!-- 背景の色:灰色 --> 23 <Setter Property="BorderBrush" Value="#FF14A9FF"/> 24 <!-- 枠線の色:青色 --> 25 <Setter Property="BorderThickness" Value="2.3"/> 26 <!-- 枠線 --> 27 <Setter Property="Foreground" Value="White"/> 28 </Style> 29 </Window.Resources> 30 <Border BorderBrush="#FF494949" BorderThickness="1"> 31 <Grid Margin="0,-15,0,720" RenderTransformOrigin="0.5,0.5"> 32 <Grid.RenderTransform> 33 <TransformGroup> 34 <ScaleTransform ScaleY="1"/> 35 <SkewTransform/> 36 <RotateTransform/> 37 <TranslateTransform/> 38 </TransformGroup> 39 </Grid.RenderTransform> 40 <Menu Margin="0,15,0,0" Background="#FF494949"> 41 <MenuItem Header="ファイル(_F)" Height="26" Foreground="White"> 42 <MenuItem Header="新規(_N)"></MenuItem> 43 <MenuItem Header="開く(_O)"></MenuItem> 44 </MenuItem> 45 <MenuItem Header="編集(_E)" Foreground="White"></MenuItem> 46 </Menu> 47 48 </Grid> 49 </Border> 50</Window>

C#

1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6using System.Windows; 7using System.Windows.Controls; 8using System.Windows.Data; 9using System.Windows.Documents; 10using System.Windows.Input; 11using System.Windows.Media; 12using System.Windows.Media.Imaging; 13using System.Windows.Shapes; 14 15namespace ArCrowd_Code 16{ 17 /// <summary> 18 /// EditorWindow.xaml の相互作用ロジック 19 /// </summary> 20 public partial class EditorWindow : Window 21 { 22 public EditorWindow() 23 { 24 InitializeComponent(); 25 } 26 } 27} 28

試したこと

Window Chromeではもともとのタイトルバーは書き換えずにアプリケーションのUIのの範囲をタイトルバーまで拡張していて
実際にそこにデフォルトのタイトルバーがあるというのは分かったのですが、そのせいで上部にあるメニューを開くことができないのでしょうか?(下部や中央では開くことができた)また、メニューを開けるようにするにはどうすればよいのでしょうか?

補足情報(FW/ツールのバージョンなど)

Microsoft Visual Studio Community 2022 RC (64 ビット)
Version 17.0.0 RC3

.NET Core 6.0(.NET 6.0)
言語:C#

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これですかね。
WindowChrome.IsHitTestVisibleInChrome 添付プロパティ (System.Windows.Shell) | Microsoft Docs

WindowChromeを使用した独自ウィンドウの作成 - やる気駆動型エンジニアの備忘録


ぐちゃぐちゃマージン(Margin="0,-15,0,720")だとリサイズ時にどっかに行ってしまいますので、DockPanelがいいと思います。

WindowChromeは癖が強いのでMahApps.Metro等に任せたい気もしますが、メニューをタイトルバーになじむ色に変えたりするのもそれはそれで面倒ですね^^;

投稿2021/10/30 14:35

TN8001

総合スコア9315

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/10/30 22:28

ありがとうございました。マージンのことについても教えてくれてありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問