C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

RibbonComboBox マウス右クリック時エラー /ALPHA (25/03/27(Thu) 04:56) #103607
Re[1]: RibbonComboBox マウス右クリック時エラー /WebSurfer (25/03/27(Thu) 07:56) #103608
│└ Re[2]: RibbonComboBox マウス右クリック時エラー /ALPHA (25/03/27(Thu) 10:34) #103609
│  └ Re[3]: RibbonComboBox マウス右クリック時エラー /WebSurfer (25/03/27(Thu) 10:46) #103610
Re[1]: RibbonComboBox マウス右クリック時エラー /kiku (25/03/27(Thu) 11:26) #103611
Re[1]: RibbonComboBox マウス右クリック時エラー /とっちゃん (25/03/27(Thu) 16:50) #103612
  └ Re[2]: RibbonComboBox マウス右クリック時エラー /ALPHA (25/03/27(Thu) 22:49) #103613 解決済み


親記事 / ▼[ 103608 ] ▼[ 103611 ] ▼[ 103612 ]
■103607 / 親階層)  RibbonComboBox マウス右クリック時エラー
□投稿者/ ALPHA (1回)-(2025/03/27(Thu) 04:56:00)

分類:[.NET 全般] 

開発環境 : Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.13.2
使用言語 : VB.Net
OS : Windows 10

WPFでリボンインターフェイスを作成しています
只今、リボンタブにリボンコンボボックスを一つXAMLでのみ記述した状態です

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Ribbon Grid.Row="0">
<RibbonTab Header="RibbonTab1" >
<RibbonGroup Header="RibbonGroup1">
<RibbonComboBox Label="RibbonComboBox1" IsEditable="True"/>
</RibbonGroup>
</RibbonTab>
</Ribbon>
</Grid>

実行をかけリボンコンボボックスに適当な文字を入力した状態でリボンコンボボックスをマウスで右クリックすると
System.InvalidOperationException: ''RibbonSeparator' TargetType は、要素 'Separator' の型と一致しません。'
ハンドルされていない例外が発生します
エラーが発生個所も原因も判らず停滞しております。
何かしらのご助言、ご指摘がございましたらよろしくお願い致します。

[ □ Tree ] 返信 編集キー/

▲[ 103607 ] / ▼[ 103609 ]
■103608 / 1階層)  Re[1]: RibbonComboBox マウス右クリック時エラー
□投稿者/ WebSurfer (2947回)-(2025/03/27(Thu) 07:56:42)
No103607 (ALPHA さん) に返信
> 開発環境 : Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.13.2
> 使用言語 : VB.Net
> OS : Windows 10

ターゲットフレームワークはなんでしょう?
[ 親 103607 / □ Tree ] 返信 編集キー/

▲[ 103608 ] / ▼[ 103610 ]
■103609 / 2階層)  Re[2]: RibbonComboBox マウス右クリック時エラー
□投稿者/ ALPHA (2回)-(2025/03/27(Thu) 10:34:02)
No103608 (WebSurfer さん) に返信
> ■No103607 (ALPHA さん) に返信
>>開発環境 : Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.13.2
>>使用言語 : VB.Net
>>OS : Windows 10
>
> ターゲットフレームワークはなんでしょう?

返信ありがとうございます。
ターゲットフレームワークは .NET 7.0 です。
よろしくお願いいたします。
[ 親 103607 / □ Tree ] 返信 編集キー/

▲[ 103609 ] / 返信無し
■103610 / 3階層)  Re[3]: RibbonComboBox マウス右クリック時エラー
□投稿者/ WebSurfer (2948回)-(2025/03/27(Thu) 10:46:04)
No103609 (ALPHA さん) に返信

> ターゲットフレームワークは .NET 7.0 です。

.NET 7.0 でリボン UI が使えるのかどうか自分は分かりませんが・・・

> エラーが発生個所も原因も判らず停滞しております。

発生個所はデバッグ実行すれば分かるのでは?

.NET Framework 4.8 の WPF アプリで、質問者さんのコードをコピペして試して
みましたが、下の画像のように Style.cs の CheckTargetType メソッドで例外が
スローされているのは分かりました。

https://surferonwww.info/BlogEngine/image.axd?picture=2025%2f3%2f0327WPF.jpg

だたし原因は分かりませんのでこれ以上お役に立てそうもないですが。
[ 親 103607 / □ Tree ] 返信 編集キー/

▲[ 103607 ] / 返信無し
■103611 / 1階層)  Re[1]: RibbonComboBox マウス右クリック時エラー
□投稿者/ kiku (466回)-(2025/03/27(Thu) 11:26:49)
No103607 (ALPHA さん) に返信
> 開発環境 : Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.13.2
> 使用言語 : VB.Net
> OS : Windows 10
> WPFでリボンインターフェイスを作成しています
> 只今、リボンタブにリボンコンボボックスを一つXAMLでのみ記述した状態です
> 実行をかけリボンコンボボックスに適当な文字を入力した状態でリボンコンボボックスをマウスで右クリックすると
> System.InvalidOperationException: ''RibbonSeparator' TargetType は、要素 'Separator' の型と一致しません。'
> ハンドルされていない例外が発生します
> エラーが発生個所も原因も判らず停滞しております。
> 何かしらのご助言、ご指摘がございましたらよろしくお願い致します。

検索しただけですが、下記の記事を見つけました。
https://takap-tech.com/entry/2017/06/25/021144
記事によると、リボンUIは非推奨のようです。
ただし動かす方法はあるみたいですので
まずは、4.8で上記記事を試し、動作したら、
.NET7で試してみてはいかがでしょうか?

[ 親 103607 / □ Tree ] 返信 編集キー/

▲[ 103607 ] / ▼[ 103613 ]
■103612 / 1階層)  Re[1]: RibbonComboBox マウス右クリック時エラー
□投稿者/ とっちゃん (842回)-(2025/03/27(Thu) 16:50:56)
No103607 (ALPHA さん) に返信

> 実行をかけリボンコンボボックスに適当な文字を入力した状態でリボンコンボボックスをマウスで右クリックすると
> System.InvalidOperationException: ''RibbonSeparator' TargetType は、要素 'Separator' の型と一致しません。'
> ハンドルされていない例外が発生します
> エラーが発生個所も原因も判らず停滞しております。
> 何かしらのご助言、ご指摘がございましたらよろしくお願い致します。
> 
.NET7 はすでにサポートが切れて久しい(一年近く前にサポート終了)ので
VS2022 v17.13.5 + .NET9 な WPF アプリで試してみました(ちょうど手を入れても問題ないコードがあったので)。

同じように、文字列を入力した状態で、右クリックするとライブラリ内部で同じ例外が発生しました。
原因はたどってないのでわかりませんが、内部的な不具合がずっと残ったままなのではないかと。
(実装当初とほかの部分が変わってエラーが出るようになった可能性もあります)

.NET 側にIssueがあればと思って、見てみましたが、GitHub のWPFのところに

今まで修正されていないとすると、そもそもリボンのコンボを IsEditable="True" で
使っている人がいなかったか何かしらデータがバインドされていれば問題がないのかもしれません(未確認)。
(少なくとも GitHub のIssueを RibbonComboBox で検索した範囲では出てきませんでした)

雑ですが、RibbonComboBoxの代わりにこんな感じで貼ってみたら例外は出なくなりました。

<RibbonGroup Header="RibbonGroup1">
  <WrapPanel Orientation="Horizontal">
    <Label Content="ラベル" />
    <ComboBox IsEditable="True" ItemsSource="{Binding ComboItems}" Width="96" />
  </WrapPanel>
</RibbonGroup>

ただしコンボのドロップダウンなどは多分変わるのでどうなの?という感じです。
逆にコンボのドロップダウンの感じを見ると IsEditable がどうなの?というのもあって
もしかしたら昔からこの辺りはちょっとくせのある問題だったのかもしれません。

とはいえ、kikuさんが貼っていたリンク先にも書かれていますが
個人的にはWPF標準のRibbonはお勧めできません。
サポートの話はともかく、見た目の乖離が大きく今どき環境だと
ほかのアプリと見比べてしまう分余計にどうなの?という感じになります。

個人的には、リボンを使うなら Fluent.Ribbon などの外ぶらりぶらりに頼るのが良いと思います。
より今風の Fluent UI を導入しよう!というのであれば、.NET9以上にして
WPF標準のFluentUIを導入するのが良いかもしれません(今の時点で使えるかはありますが)。

・WPF for .NET 9 の新機能
https://learn.microsoft.com/ja-jp/dotnet/desktop/wpf/whats-new/net90?WT.mc_id=DT-MVP-32182&view=netdesktop-9.0

WPF の FluentUI は出てきたばかりでまだいくつか不具合があるので、微妙なところもありますが
.NET10の頃には修正されているだろうと期待しているので(あと半年くらい)
まぁまぁ問題は少ないかな?と思います。

[ 親 103607 / □ Tree ] 返信 編集キー/

▲[ 103612 ] / 返信無し
■103613 / 2階層)  Re[2]: RibbonComboBox マウス右クリック時エラー
□投稿者/ ALPHA (3回)-(2025/03/27(Thu) 22:49:22)
WebSurfer様
kiku様
とっちゃん様

ご回答ありがとうございます。

>.NET Framework 4.8 の WPF アプリで、質問者さんのコードをコピペして試して
>みましたが、下の画像のように Style.cs の CheckTargetType メソッドで例外が
>スローされているのは分かりました。

>https://surferonwww.info/BlogEngine/image.axd?picture=2025%2f3%2f0327WPF.jpg

>だたし原因は分かりませんのでこれ以上お役に立てそうもないですが。

再現性のあるエラーだということみたいなので、こちらの環境の問題ではなさそうということが分かりました
ご検証ありがとうございました。

>検索しただけですが、下記の記事を見つけました。
>https://takap-tech.com/entry/2017/06/25/021144
>記事によると、リボンUIは非推奨のようです。
>ただし動かす方法はあるみたいですので
>まずは、4.8で上記記事を試し、動作したら、
>.NET7で試してみてはいかがでしょうか?

Microsoft リボンUIを不採用にして
Fluent:Ribbonで作業を進めていく目途がつきました
情報提供ありがとうございました。

>.NET7 はすでにサポートが切れて久しい(一年近く前にサポート終了)ので
>VS2022 v17.13.5 + .NET9 な WPF アプリで試してみました(ちょうど手を入れても問題ないコードがあったので)。

>同じように、文字列を入力した状態で、右クリックするとライブラリ内部で同じ例外が発生しました。
>原因はたどってないのでわかりませんが、内部的な不具合がずっと残ったままなのではないかと。
>(実装当初とほかの部分が変わってエラーが出るようになった可能性もあります)

ご検証ありがとうございます
Fluent.Ribbonで代替可能そうなのでこちらで作業を続けていこうと思います

以上で解決としたいと思います
皆様ご助力ありがとうございました。

解決済み
[ 親 103607 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -