איך לשנות את צבע הרקע (Background) של פקד קומבו (ComboBox) ב-Wpf
-
לא מצאתי דרך ישירה לשנות את צבע הרקע של פקד ComboBox ב-WPF, (לא ה-dropdown אלא הפקד עצמו) משום שהוא בנוי ממספר פקדים ומשום שיש בו טריגרים שמונעים זאת לכאורה.
האם מישהו מכיר דרך לשנות את הרקע מבלי לפרק את הפקד ולבנות אותו מחדש?
(פירוק הפקד גורם לאיטיות בטעינה, והפקד גם כך איטי בטעינה — מדוע טעינה של WPF כל כך איטית?)
תודה מראש!
-
@dovid
3 היא התשובה ל-2 כלומר לזה התכוונתי בלפרק פקד דהיינו על ידי עריכת ה-template שלו.למעישה שמעתי לעצתך ובדקתי שוב ומתברר שעיקר העיכוב הוא כאשר ה-viewmodel מחובר. אעבור עליו כעת ונראה מה אפשר לעשות.
עריכה: לאחר ריקון כל ה-viewmodel הטעינה הייתה עדיין איטית
לעומת זאת טעינה של ה-viewmodel דרך ה-codebehind שיפר את הזמן טעינה בכחצי עדיין לוקח 4 שניות לטעון - זה נקרא איטי או לא?
אולי זה קשור לשגיאה הזו שמופיעה כאשר אני טוען בתוך ה-xaml
Object reference not set to an instance of an object.
-
@dovid כתב באיך לשנות את צבע הרקע (Background) של פקד קומבו (ComboBox) ב-Wpf:
אני חושב שאתה לא עושה את 3, כי זה לא מפרק כלום. זה פשוט מעתיק את הטמפלייט לפרוייקט שלך כעותק, הפקד אמור להיות 1000% אותו דבר.
צודק, אכן הצלחתי לשנות את הרקע כך.
אבל יש חלק של הפקד שאני לא מצליח למצוא: מופיע ה-TextBox של ה-Editable ComboBox, וזה גורם בעיות בהצגת הטקסט בצבעים מסוימים. (ולכן גם נסיתי להוסיף את החלק הזה בתוך ה-template באופן ידני וזה מה שגרם לכל הבעיות).
בקיצור: איך אני משנה את צבע הטקסט? -
@dovid כתב באיך לשנות את צבע הרקע (Background) של פקד קומבו (ComboBox) ב-Wpf:
PART_EditableTextBox
זה לא מופיע לי. אולי כי יש לי כבר קצת סגנון על הקומבו?