回答編集履歴
1
見直しキャンペーン中
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
|
-
```
|
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)
|