קומפיונט
-
הפעלת אימולטור אנדרואיד על וינדוס -
כיצד להגדיר לתוכנה לפעול תמיד בקנ"מ של 100%?@אביי אני רק זורק רעיון, לשים את כל התצוגה ב Viewbox, אולי יעזור לך.
-
פעם שניה שאני מפעיל את המחשב ורואה את המסך כחול הזה...@laswater זה קרה לי כמה פעמים ובדרך כלל שחזור מערכת עזר, ניסית?
-
איך להשיג את האייקון של כל סוגי הקבצים בC#בדיוק לפני כמה זמן הייתי צריך לכתוב קוד שמחלץ תמונה ממוזערת מקובץ וידיאו, אז כתבתי את זה (וזה מתאים לכל סוגי הקבצים, גם לכוננים), היתרון שאפשר לקבל את התמונה בגודל שתרצה ועם עוד enum של אפשרויות.
זה הקוד:
public static class Shell { private static readonly Guid _s_imageFactoryShellId = new("BCC18B79-BA16-442F-80C4-8A59C30C463B"); public static byte[] GetImage(string path, ImageSize size, ShellItemGetImageOptions options) { if (OperatingSystem.IsWindows()) { if (SHCreateItemFromParsingName(path, 0, _s_imageFactoryShellId, out var imageFactory) != 0) { throw new Win32Exception(Marshal.GetLastWin32Error()); } if (imageFactory.GetImage(size, (int)options, out var hBitmap) != 0) { throw new Win32Exception(Marshal.GetLastWin32Error()); } try { using var stream = new MemoryStream(); var bitmap = Image.FromHbitmap(hBitmap); bitmap.Save(stream, ImageFormat.Jpeg); return stream.ToArray(); } finally { DeleteObject(hBitmap); } } throw new PlatformNotSupportedException(); } } public enum ShellItemGetImageOptions { ResizeToFit = 0, BiggerSizeOk = 1, MemoryOnly = 2, IconOnly = 4, ThumbnailOnly = 8, InCacheOnly = 0x10, CropToSquare = 0x20, WideThumbnails = 0x40, IconBackground = 0x80, ScaleUp = 0x100 } public readonly struct ImageSize(int width, int height) { public int Width { get; } = width; public int Height { get; } = height; } internal static partial class Unmanaged { [GeneratedComInterface] [Guid("BCC18B79-BA16-442F-80C4-8A59C30C463B")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public partial interface IShellItemImageFactory { [PreserveSig] int GetImage(ImageSize size, int flags, out nint hBitmap); } [LibraryImport("Shell32", SetLastError = true, StringMarshalling = StringMarshalling.Utf16)] public static partial int SHCreateItemFromParsingName(string pszPath, nint pbc, Guid riid, out IShellItemImageFactory ppv); [LibraryImport("Gdi32", SetLastError = true)] public static partial int DeleteObject(nint hObject); }
נ.ב.
זה הקוד הבסיסי, אפשר לשנות ולהתאים אותו למה שאתה צריך.
לא בדקתי אם זה עובד גם על מערכות windows יותר ישנות.
הקוד תואם ל NativeAOT (אם תשתמש בו בעתיד)
לא יודע אם הקוד הזה יעבוד ב net-framework. -
#C | עזרה באיתור או יצירת אופרטור ריאקטיבי -
#C | עזרה באיתור או יצירת אופרטור ריאקטיבי@צדיק-תמים אני בדוטנט והספרייה זה Rx.NET. כל מי שלא משתמש עם Rx היה עושה בדיוק מה שכתבת, אבל זה הדבר האחרון שהייתי רוצה לעשות, כי אם כבר הכל ריאקטיבי אז למה להסתבך עם משתנים ותנאים, מה שחסר זה רק להוסיף את האופרטור הנכון.
ואגב, מצאתי את האופרטור Sample אז בעצם יש לי כבר תשובה לשאלה.. -
#C | עזרה באיתור או יצירת אופרטור ריאקטיבי@צדיק-תמים כתבתי בפוסט הראשון למה Throttle לא טוב לי ו - Throttle בדוטנט זה debounce ב - RxJs, זה אותו אופרטור עם שם שונה.
אם אני ישתמש עם debounce, התוצאה שאני אקבל זה כשהמשתמש יגרור את העכבר לחפש מקום בקובץ שום דבר לא ישתנה עד שהוא יפסיק לגרור, כי ב-debounce הטיימר מתאפס בכל פעם שמגיע ערך (ורק כשעבר פרק זמן בלי שהגיע שום ערך, הוא מחזיר את הערך האחרון), אני כן צריך שהאופרטור יפיק ערך לפי פרק זמן קבוע בלי קשר למתי הגיע הערך האחרון, ואז התוצאה שבזמן שהמשתמש גורר את העכבר כל עשירית שניה מתבצע חיפוש בקובץ. -
#C | עזרה באיתור או יצירת אופרטור ריאקטיבי -
#C | עזרה באיתור או יצירת אופרטור ריאקטיבייש לי תוכנה עם נגן וידאו מוטמע, יש למטה את מחוון המיקום שהמשתמש יכול לגרור אותו ולחפש מקומות אחרים בקובץ,
נכון לעכשיו בכל אירוע של גרירה מתבצעת פעולת חיפוש בקובץ, ובקבצים באיכות גבוהה זה לא זורם חלק,
אני מחפש את האופרטור (ריאקטיבי) שבכל פעולה של גרירה הוא יסנן את הערכים הרבים ויחזיר רק ערך אחד בכל פרק של זמן שניתן כקלט, זה דומה ל -Throttle
אבל Throttle מחכה שכל שלא יהיה תפוקה בכלל לזמן מסויים ורק אח"כ הוא נותן את הערך האחרון, אני מחפש משהו דומה ל Throttle שיסנן כמות של ערכים אבל כן יחזיר לי פעם בשניה (לדוג') את הערך האחרון.המטרה שלי שבזמן שהמשתמש יגרור את העכבר כדי לחפש מיקום אחר בקובץ, החיפוש יתבצע פעם בעשירית שנייה או פחות, אבל לא בכל אירוע של גרירה.
-
ProgressBar בWPF תוך כדי פעולת thread@pcinfogmach כתב בProgressBar בWPF תוך כדי פעולת thread:
private async void search(string[] files) { progressBar.Maximum = files.Length; List<System.Threading.Tasks.Task> searchTasks = new List<System.Threading.Tasks.Task>(); foreach (string file in files) { searchTasks.Add(Task.Run(() => { this.Dispatcher.Invoke(() => { progressBar.Value = progressBar.Value + 1; File.ReadAllLines(file); }); })); } await System.Threading.Tasks.Task.WhenAll(searchTasks); progressBar.Value = 0; }
למה
File.ReadAllLines(file)
נמצא בתוך הקריאה לDispatcher.Invoke
? תנסה להוציא אותו מחוץ ל Dispatcher, הקריאה אמורה להכיל קוד שמשנה את התצוגה בלבד. הגיוני שהתרד של התצוגה נתקע כי את מריץ עליו עוד לוגיקה שלא קשורה ל UI שיתכן שגוזלת זמן, ובגלל שה UI לא מגיב אתה לא רואה את ההתקדמות. (חוץ מזה שצריך לאפס אתprogressBar.Value
לאפס, מה ש @dovid כתב לך) -
C# webview2 navigatetostring- טעינת טקסט בפקד@dovid כתב בC# webview2 navigatetostring- טעינת טקסט בפקד:
תקרא לה מייד אחרי הInitializeComponent כדי שזה "יספיק" להיטען,
או שתוסיף לפניה await (ותוסיף למתודה async).או לחילופין תקרא לה ככה:
()EnsureCoreWebView2Async().Wait
, זה יעצור את הטרד הנוכחי עד שהפונקציה תסתיים.(מומלץ מאוד להשתמש ב async / await)
-
wpf treeview עם scrollBar יותר יפה@pcinfogmach כתב בwpf treeview עם scrollBar יותר יפה:
לא מצאתי משהו שמטפל בscrollbar מישהו מכיר?
אני רואה לדוג' את הריפו הזה https://github.com/benruehl/adonis-ui נראה בצילום מסך שיש לו scrollbar עם עיצוב דומה למה שאתה מחפש, אני לא התנסיתי אישית וגם אני רואה שהריפו לא פעיל כמה שנים, אבל אולי זה יכול לעזור לך.
ובהמשך למה ש @dovid כתב, באמת לא כדאי לעבוד על כל פקד, אבל אם זה משהו שמפריע לך רק ב scrollbar אז אולי עדיף לקחת איזה ריפו שמכיל עיצוב שאתה אוהב ולעשות copy-paste ולשלב לתוך הפרויקט שלך.
-
mvvm בc# wpfאני לא יודע אם אני מכוון בדיוק להגדרה, אבל MVVM זה אוסף של כללים ושיטות לפיתוח תוכנה עם ממשק משתמש, זה מתחלק לשלוש חלקים: 1) Model - זה החלק שמחזיק את הנתונים והלוגיקה, 2) View - זה התצוגה, 3) ViewModel זה החלק שמתווך בין ה - View ל - Model, מה שאני מרוויח פה זה שאין קשר הדוק בין ה - View ל - Model, אלא הוא נעשה על ידי מתווך שלישי (ViewModel) שנותן דרך מאוד ברורה איך לעשות את זה (Bindings ו - Commands), המטרה העיקרית של MVVM זה להפריד את הלוגיקה של התוכנה מה UI, אבל יש לו עוד יתרונות, ביניהם: עבודה נוחה עם הזרקת תלות (DependencyInjection), אפשר לעשות טסטים יותר בקלות (כי לא צריך להפעיל את ה - View), ועוד..
-
יצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו@מוטי-מן כתב ביצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו:
איך אני עושה את זה? לא מצאתי דבר כזה בממשק הגרפי
למקרה שעדין לא הצלחת, תתחיל מה ש @dovid כתב, ואח"כ:
-
שאלה בwpf האם יש דרך להסיר את הצל שסביב האובייקט windowחלון קלאסי מקבל את העיטורים והלחצנים (של ה'סגור', 'מזער' וכו') ממערכת ההפעלה, זה משתנה בין מערכות הפעלה וזה כולל גם את הצל שמסביב, אם אתה רוצה חלון ללא עיטורים תגדיר את
WindowStyle
ל -None
, בכזה מקרה תקבל מלבן לבן בלי שם דברים מסביב. -
עזרה בקוד C# wpfהוספה שאולי תעזור, אם רוצים לקבל את ה -
ActualHeight
לפני הרנדור הראשוני אפשר לחשב אותו ידנית על ידי קריאה ל -Measure
ולאחר מכן המאפייןDesiredSize
יכיל את הגודל הרצוי. -
מה ההבדל בין שני סוגי הפרויקטים הללו בויז'ואל סטודיו?@חגי האם אתה היית ממליץ למי שכבר מפתח לווינדוס ב NET Core. לעבור ל NET Framework.?
-
מה ההבדל בין שני סוגי הפרויקטים הללו בויז'ואל סטודיו?זה קצת מפליא אותי אבל אני לא יכול לשפוט בצורה אובייקטיבית, כי לפחות כמה שנים לא נגעתי ב NET Framework. מה שאני כן יודע זה שהוא הוצא מתמיכה ומה שהחליף אותו זה NET. שהוא מודרני, חוצה פלטפורמות, מתעדכן עם שיפורי ביצועים ותיקוני אבטחה, מסקרן אותי אם יש ל NET Framework. יתרון קונקרטי, לומר שהוא יותר בוגר בלי להסביר איפה לא עוזר לי הרבה (WinXP גם יותר בוגר, אבל במוזיאון)
(WinForm @pcinfogmach פחות מעניין אותי, אבל תן לי לדוגמא פקד שקיים רק ב framework, גם זה נשמע לי מוזר..)