teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

見直しキャンペーン中

2023/07/26 14:52

投稿

TN8001
TN8001

スコア10108

answer CHANGED
@@ -1,47 +1,47 @@
1
- > テキストボックスのハンドルを得ようとbtn_Click内で「textBox1.」まで入力したのですが、この後に出てくるプロパティ等の候補メニュー内に「Handle」がありません。
2
-
3
- WPFはWindows Formsと違い、コントロールにウィンドウハンドルはありません。
4
- 当然`Handle`プロパティもありません。
5
-
6
- > このテキストボックスでIME制御をしたいため
7
-
8
- 使用禁止にする場合はこちらです。
9
- [InputMethod.IsInputMethodEnabled Attached Property (System.Windows.Input) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.input.inputmethod.isinputmethodenabled)
10
-
11
- フォーカス時のオンオフであればこちらです。
12
- [InputMethod.PreferredImeState Attached Property (System.Windows.Input) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.input.inputmethod.preferredimestate)
13
-
14
- さらにモードも指定する場合はこちらです。
15
- [InputMethod.PreferredImeConversionMode Attached Property (System.Windows.Input) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.input.inputmethod.preferredimeconversionmode)
16
-
17
- 特定条件時にちょっと不具合があるようです。
18
- [[WPF] TextBox 毎にフォーカス時の IME の変換モードを設定する | rksoftware](https://rksoftware.wordpress.com/2016/05/08/wpf-textbox-%E6%AF%8E%E3%81%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%82%AB%E3%82%B9%E6%99%82%E3%81%AE-ime-%E3%81%AE%E5%A4%89%E6%8F%9B%E3%83%A2%E3%83%BC%E3%83%89%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/)
19
-
20
- ```xaml
21
- <Window
22
- x:Class="Questions327056.MainWindow"
23
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
24
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
25
- Width="800"
26
- Height="450">
27
- <StackPanel>
28
- <TextBox Text="なにもしない" />
29
- <TextBox InputMethod.IsInputMethodEnabled="False" Text="IME禁止" />
30
- <TextBox InputMethod.PreferredImeState="Off" Text="IMEオフ" />
31
- <TextBox InputMethod.PreferredImeState="On" Text="IMEオン" />
32
- <TextBox
33
- InputMethod.PreferredImeConversionMode="Native,FullShape"
34
- InputMethod.PreferredImeState="On"
35
- Text="ひらがな" />
36
- <TextBox
37
- InputMethod.PreferredImeConversionMode="Alphanumeric"
38
- InputMethod.PreferredImeState="On"
39
- Text="半角英数" />
40
- </StackPanel>
41
- </Window>
42
- ```
43
-
44
- ---
45
-
46
- そういうことでなく`ImmGetContext`を呼びたいということであるなら、こちらがヒットしました。
1
+ > テキストボックスのハンドルを得ようとbtn_Click内で「textBox1.」まで入力したのですが、この後に出てくるプロパティ等の候補メニュー内に「Handle」がありません。
2
+
3
+ WPFはWindows Formsと違い、コントロールにウィンドウハンドルはありません。
4
+ 当然`Handle`プロパティもありません。
5
+
6
+ > このテキストボックスでIME制御をしたいため
7
+
8
+ 使用禁止にする場合はこちらです。
9
+ [InputMethod.IsInputMethodEnabled Attached Property (System.Windows.Input) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.input.inputmethod.isinputmethodenabled)
10
+
11
+ フォーカス時のオンオフであればこちらです。
12
+ [InputMethod.PreferredImeState Attached Property (System.Windows.Input) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.input.inputmethod.preferredimestate)
13
+
14
+ さらにモードも指定する場合はこちらです。
15
+ [InputMethod.PreferredImeConversionMode Attached Property (System.Windows.Input) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.input.inputmethod.preferredimeconversionmode)
16
+
17
+ 特定条件時にちょっと不具合があるようです。
18
+ [[WPF] TextBox 毎にフォーカス時の IME の変換モードを設定する | rksoftware](https://rksoftware.wordpress.com/2016/05/08/wpf-textbox-%E6%AF%8E%E3%81%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%82%AB%E3%82%B9%E6%99%82%E3%81%AE-ime-%E3%81%AE%E5%A4%89%E6%8F%9B%E3%83%A2%E3%83%BC%E3%83%89%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/)
19
+
20
+ ```xml
21
+ <Window
22
+ x:Class="Questions327056.MainWindow"
23
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
24
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
25
+ Width="800"
26
+ Height="450">
27
+ <StackPanel>
28
+ <TextBox Text="なにもしない" />
29
+ <TextBox InputMethod.IsInputMethodEnabled="False" Text="IME禁止" />
30
+ <TextBox InputMethod.PreferredImeState="Off" Text="IMEオフ" />
31
+ <TextBox InputMethod.PreferredImeState="On" Text="IMEオン" />
32
+ <TextBox
33
+ InputMethod.PreferredImeConversionMode="Native,FullShape"
34
+ InputMethod.PreferredImeState="On"
35
+ Text="ひらがな" />
36
+ <TextBox
37
+ InputMethod.PreferredImeConversionMode="Alphanumeric"
38
+ InputMethod.PreferredImeState="On"
39
+ Text="半角英数" />
40
+ </StackPanel>
41
+ </Window>
42
+ ```
43
+
44
+ ---
45
+
46
+ そういうことでなく`ImmGetContext`を呼びたいということであるなら、こちらがヒットしました。
47
47
  [c# - ImmGetContext return 0 in WPF - Stack Overflow](https://stackoverflow.com/questions/7290134/immgetcontext-return-0-in-wpf/7290201)