Skip to content

تقویم شمسی به همراه مناسبت های شمسی و قمری و میلادی همراه با توابع تاریخ قمری و میلادی

License

Notifications You must be signed in to change notification settings

HoseinAsadi/PersianToolkit

 
 

Repository files navigation

PersianToolkit

پرشین تولکیت جزئی از فریمورک

HandyControls

می باشد. جهت دریافت بروزرسانی ها لطفا به صفحه فریمورک مراجعه کنید

پرشین تولکیت شامل تقویم و انتخاب کننده تاریخ، بصورت شمسی بوده که توانایی نمایش روزهای تعطیل، و عنوان مناسبت های میلادی، قمری و شمسی را دارد. همچنین پرشین تولکیت شامل توابع قدرتمندی جهت تبدیل تاریخ بصورت شمسی، قمری، و میلادی است.

Screen1
Screen2
Screen3 Screen4

نحوه استفاده

ابتدا پرشین تولکیت را از ناگت نصب کنید
Install-Package PersianToolkit
منابع برنامه را در فایل App.xaml بارگزاری کنید
<ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary>
                    <ResourceDictionary.MergedDictionaries>
                        <ResourceDictionary Source="pack://application:,,,/PersianToolkit;component/Themes/SkinDefault.xaml"/>
                        <ResourceDictionary Source="pack://application:,,,/PersianToolkit;component/Themes/Theme.xaml"/>
                    </ResourceDictionary.MergedDictionaries>
                </ResourceDictionary>
            </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
در هر کجا که نیاز به تقویم دارید ابتدا فضای نام برنامه را فراخوانی کنید سپس از اجزای آن استفاده کنید
xmlns:pc="http://github.com/ghost1372/PersianToolkit"
    <pc:Calendar/>
    <pc:DatePicker/>

تغییر پوسته برنامه

پرشین تولکیت شامل 3 پوسته پیشفرض است که میتوانید به راحتی در زمان اجرا پوسته برنامه را تغییر دهید قبل از آن نیاز است تا تابع تغییر پوسته را پیاده سازی کنید
internal void UpdateSkin(SkinType skin)
        {
            ResourceDictionary skins0 = Resources.MergedDictionaries[0];
            skins0.MergedDictionaries.Clear();
            skins0.MergedDictionaries.Add(ResourceHelper.GetSkin(skin));
            skins0.MergedDictionaries.Add(new ResourceDictionary
            {
                Source = new Uri("pack://application:,,,/PersianToolkit;component/Themes/Theme.xaml")
            });
            Current.MainWindow?.OnApplyTemplate();
        }
ورودی تابع از نوع SkinType می باشد که شامل Dark, Violet و Defualt می باشد

UpdateSkin(SkinType.Violet)

تغییر تقویم به حالت میلادی یا شمسی

برای تغییر نوع تقویم میتوانید از کلاس ConfigHelper استفاده کنید
ConfigHelper.Instance.SetLanguage(ConfigHelper.Language.Persian);
نکته: فقط یکبار آن هم در زمان شروع شدن برنامه میتوانید نوع تقویم را تغییر دهید در زمان اجرا نمیتوانید نوع تقویم را تغییر دهید

گزینه های موجود

ShowHoliday :مناسبت ها

جهت نمایش مناسبت ها و روز های تعطیل روی تقویم میتوانید آن را فعال کنید قابل استفاده در تقویم و انتخاب کننده تاریخ
<pc:Calendar pc:Holiday.ShowHoliday="True"/>

رنگ ها : روز جاری، روز انتخاب شده، روزهای تعطیل، کادر مناسبت ها

شما میتوانید براحتی رنگ روز فعلی، روز انتخاب شده و روزهای تعطیل را تغییر دهید
<pc:Calendar pc:ColorStyle.HolidayDayBrush="{DynamicResource SuccessBrush}" pc:ColorStyle.SelectedDateBrush="{DynamicResource WarningBrush}" pc:ColorStyle.TodayDateBrush="{DynamicResource InfoBrush}"/>
بصورت پیشفرض رنگ های زیر موجود است و با نوشتن آنها میتوانید از رنگ های پیشفرض استفاده کنید
PrimaryBrush
SuccessBrush
InfoBrush
DangerBrush
WarningBrush
AccentBrush
برای تغییر رنگ کادر عنوان مناسبت ها باید از پراپرتی HolidayContentStyle استفاده کنید دقت کنید که این پراپرتی ورودی از نوع Style برای کنترل Label دریافت می کند بصورت پیشفرض استایل های زیر موجود است
<pc:Calendar pc:ColorStyle.HolidayContentStyle="{StaticResource LabelPrimary}"/>
LabelDefault
LabelPrimary
LabelSuccess
LabelInfo
LabelDanger
LabelWarning

تغییر رنگ ها و استایل به وسیله کدهای سی شارپ

شما میتوانید رنگ ها و استایل های موجود را با سی شارپ هم تغییر دهید برای این منظور وارد کلاس ColorStyle شوید و پراپرتی موردنظر را انتخاب کنید و مقدار دلخواه را ست کنید، برای سادگی کار استایل ها و رنگ های پیشفرض توسط کلاس ResourceHelper و ResourceBrushToken یا ResourceHolidayContentStyleToken قابل دسترسی هستند.
ColorStyle.SetHolidayDayBrush(pc, ResourceHelper.GetResource<Brush>(ResourceBrushToken.SuccessBrush));

ColorStyle.SetHolidayContentStyle(pc, ResourceHelper.GetResource<Style>(ResourceHolidayContentStyleToken.LabelPrimary));

About

تقویم شمسی به همراه مناسبت های شمسی و قمری و میلادی همراه با توابع تاریخ قمری و میلادی

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 97.9%
  • HTML 2.1%