回答編集履歴

1

見直しキャンペーン中

2023/07/26 14:52

投稿

TN8001
TN8001

スコア9855

test CHANGED
@@ -1,93 +1,47 @@
1
1
  > テキストボックスのハンドルを得ようとbtn_Click内で「textBox1.」まで入力したのですが、この後に出てくるプロパティ等の候補メニュー内に「Handle」がありません。
2
2
 
3
-
4
-
5
3
  WPFはWindows Formsと違い、コントロールにウィンドウハンドルはありません。
6
-
7
4
  当然`Handle`プロパティもありません。
8
-
9
-
10
5
 
11
6
  > このテキストボックスでIME制御をしたいため
12
7
 
13
-
14
-
15
8
  使用禁止にする場合はこちらです。
16
-
17
9
  [InputMethod.IsInputMethodEnabled Attached Property (System.Windows.Input) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.input.inputmethod.isinputmethodenabled)
18
10
 
19
-
20
-
21
11
  フォーカス時のオンオフであればこちらです。
22
-
23
12
  [InputMethod.PreferredImeState Attached Property (System.Windows.Input) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.input.inputmethod.preferredimestate)
24
13
 
25
-
26
-
27
14
  さらにモードも指定する場合はこちらです。
28
-
29
15
  [InputMethod.PreferredImeConversionMode Attached Property (System.Windows.Input) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.input.inputmethod.preferredimeconversionmode)
30
16
 
31
-
32
-
33
17
  特定条件時にちょっと不具合があるようです。
34
-
35
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/)
36
19
 
37
-
38
-
39
- ```xaml
20
+ ```xml
40
-
41
21
  <Window
42
-
43
22
  x:Class="Questions327056.MainWindow"
44
-
45
23
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
46
-
47
24
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
48
-
49
25
  Width="800"
50
-
51
26
  Height="450">
52
-
53
27
  <StackPanel>
54
-
55
28
  <TextBox Text="なにもしない" />
56
-
57
29
  <TextBox InputMethod.IsInputMethodEnabled="False" Text="IME禁止" />
58
-
59
30
  <TextBox InputMethod.PreferredImeState="Off" Text="IMEオフ" />
60
-
61
31
  <TextBox InputMethod.PreferredImeState="On" Text="IMEオン" />
62
-
63
32
  <TextBox
64
-
65
33
  InputMethod.PreferredImeConversionMode="Native,FullShape"
66
-
67
34
  InputMethod.PreferredImeState="On"
68
-
69
35
  Text="ひらがな" />
70
-
71
36
  <TextBox
72
-
73
37
  InputMethod.PreferredImeConversionMode="Alphanumeric"
74
-
75
38
  InputMethod.PreferredImeState="On"
76
-
77
39
  Text="半角英数" />
78
-
79
40
  </StackPanel>
80
-
81
41
  </Window>
82
-
83
42
  ```
84
-
85
-
86
43
 
87
44
  ---
88
45
 
89
-
90
-
91
46
  そういうことでなく`ImmGetContext`を呼びたいということであるなら、こちらがヒットしました。
92
-
93
47
  [c# - ImmGetContext return 0 in WPF - Stack Overflow](https://stackoverflow.com/questions/7290134/immgetcontext-return-0-in-wpf/7290201)