عزیز دل برادر! آخه این که کدی نداشت که متوجه نشوید!
سر و ته کدش همین چند خط است...
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همانطور که گفتم رنگ بندی متون در این کنترلر توسط واسط IHighlightingStrategy مدیریت میشود.
کلاسس DefaultHighlightingStrategy کلاسس پیش فرض این کنترلر است که از واسط فوق پشتیبانی میکند.
1- تعریف متغییر میکنیم.
2- GetManifestResourceStream را هم که حتماً قبلاً دیده اید، دستوری است که اجازه دسترسی stream به فایلی داخل exe یا dll خودتان جای داده اید را میدهد. (مثلاً اگر بخواهید تصویری را که فایلش داخل Exe تان است را هم نمایش دهید از همین دستور استفاده میکنید.)
3- یک کلاسس XmlTextReader خواننده فرمت xml میسازید، چون فایل اصلی داخل Exe ما هم xml بوده، پس مشکلی ندارد.
4- تابع HighlightingDefinitionParser.Parse که جز خود برنامه های کنترلر است، میتوانید از یک فایل xml که سازنده فرمتش را مشخص کرده (همان شکل و شمایلی که در فایل TextEditorFile.xshd.xml میبینید) و حاوی لغات و رنگها است، یک نمونه کلاسس DefaultHighlightingStrategy بسازد (همان کلاسی که واسط رنگ بندی IHighlightingStrategy را پشتیبانی میکند.)
5- دستور ResolveReferences که سازنده مشخص کرده، کلاسس را آماده کار میکند.
6- آخرین دستور هم نمونه کلاسس DefaultHighlightingStrategy (که حاوی IHighlightingStrategy است) را به کنترلر تحویل میدهد تا از این نمونه جدید برای کنترلر رنگ بندی استفاده کند.
=====
به نظر میرسه این چیزی که من میخوام یاد بگیرم خیلی پیچیدس
چندان پیچیده نیست، یعنی این کنترلر کار را خیلی ساده میکند، نمیدانم چرا همچین چیزی میگوید، در حالی که فقط با چند خط کد فوق الذکر که بسیار بسیار ناچیز است، کار تمام شده و نتیجه را مشاده کردید ... !
کلمات قبلی موجود در TextEditorFile.xshd.xml را حذف کنید و کلمات و رنگ های دلخواه خود را واردش کنید .!
=====
این رو میدونستم ولی متوجه نشدم که چه جوری باید نوشته و رنگ دلخواه رو از این روش معرفی کنم
نمونه مشخص تر کلاسس این است:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
شما باید برای شرایط خالی مشخص شده کدنویسی کنید.
همانطور که گفتم این کنترلر قوی و کاملی است که در اینترنت موجود است ولی من با آن کار نکرده ام، نتیجتاً نمیدانم هر کدام از این متدها مشخص کننده چه هستند...
گرچه برخی موارد واضح است...
- مثلاً شما در Name باید یک نام برای این فرمت را برگردانید.
- یا در Extensions باید لیست پسوند فایل هایی که کنترلر باید به صورت خودکار برای آن فایلها از فرمت شما استفاده کند را برگردانید.
- یا در GetColor باید رنگ و bold و italic و... کلمه داده شده را برگردانید.
- و در GetColorFor هم باید مشابه متد قبل عمل کنید ولی این بار در داخل جریان تایپ متون
و...
ولی چیز پیچیده و سختی نیست و اگر کمی وقت صرف شود متوجه نحوه کار کرد میشوید.
همانطور که من به راحتی و در مدت کوتاهی صرف زمان توانستم با چند کد فایل xml حاوی کلمات و رنگبندی را خوراک کنترلر کنم.
=====
موفق باشید.