回答編集履歴

3

nullじゃ駄目でした

2019/10/30 06:48

投稿

takabosoft
takabosoft

スコア8356

test CHANGED
@@ -181,3 +181,31 @@
181
181
  もコードビハインドでBrushes.Whiteか何かを何かに代入しているのかなと思いますが、
182
182
 
183
183
  クリアをBrushes.Whiteではなくnullを代入してみるとどうでしょう?
184
+
185
+
186
+
187
+ ----
188
+
189
+
190
+
191
+ 更に追記:
192
+
193
+ 最初のラベルのサンプルで試していましたが
194
+
195
+
196
+
197
+ > MyLabel.Background = Brushes.Red;
198
+
199
+
200
+
201
+ としたあと、
202
+
203
+
204
+
205
+ > MyLabel.ClearValue(BackgroundProperty);
206
+
207
+
208
+
209
+ とすれば、添付プロパティの内容をクリアできるようです。
210
+
211
+ nullではなく、こちらを使ってみてください。

2

2

2019/10/30 06:48

投稿

takabosoft
takabosoft

スコア8356

test CHANGED
@@ -141,3 +141,43 @@
141
141
 
142
142
 
143
143
  ※自分はあんまりWPFは詳しくないので、もうちょっと上手い方法がありそうです。
144
+
145
+
146
+
147
+ ----
148
+
149
+
150
+
151
+ > 日をクリックすると背景をグリーン色にしているのですが、事情により
152
+
153
+ 月が変わるたびに全ての日の背景を一度ホワイト色でクリアする必要があります。
154
+
155
+ クリアはコードビハインドで行っていますが、そうするとマウスホバー時に上記の
156
+
157
+ XAMLで指定したピンク色にはならずホワイト色のままになってしまいます。
158
+
159
+ ホワイト色でクリアした後でも個々の日をマウスホバー時にピンク色にすることは
160
+
161
+ 可能でしょうか?
162
+
163
+
164
+
165
+ えーと
166
+
167
+
168
+
169
+ > 日をクリックすると背景をグリーン色にしている
170
+
171
+
172
+
173
+ もコードビハインドで、
174
+
175
+
176
+
177
+ > 全ての日の背景を一度ホワイト色でクリアする
178
+
179
+
180
+
181
+ もコードビハインドでBrushes.Whiteか何かを何かに代入しているのかなと思いますが、
182
+
183
+ クリアをBrushes.Whiteではなくnullを代入してみるとどうでしょう?

1

2019/10/30 04:54

投稿

takabosoft
takabosoft

スコア8356

test CHANGED
@@ -22,13 +22,17 @@
22
22
 
23
23
  例えばラベルの背景を変えるのではなくて、
24
24
 
25
- * ボーダーの背景色
25
+ * ラベルの装飾として置いたボーダーの背景色
26
26
 
27
27
  * ラベルとレイヤーを組んだ別のコントロールの背景色
28
28
 
29
29
 
30
30
 
31
- を変えるという手が使えるのかなと思いました。
31
+ コードビハインドで変えるという手が使えるのかなと思いました。
32
+
33
+
34
+
35
+ ただ、これだけだと実行時、マウスオーバーで四角の上に別の四角を描画するという形になり、描画範囲に誤差が出るとゴミが表示される気がするので`UseLayoutRounding="True"`を入れてごまかしてあります。
32
36
 
33
37
 
34
38
 
@@ -120,8 +124,6 @@
120
124
 
121
125
  InitializeComponent();
122
126
 
123
-
124
-
125
127
  MyLabelBorder.Background = Brushes.Red;
126
128
 
127
129
  }