PDA

View Full Version : سوال: نحوه گرفتن رنگ از ColorPickerButton و دادن آن به ManagerColorTint ؟؟؟



tam2145
دوشنبه 22 اسفند 1390, 19:14 عصر
سلام !!
من یک ریبون کنترل از کامپوننت dotnetbar ایجاد کرده ام که همراهش یک StyleManager ایجاد می شود که یک خصوصیت به نام ManagerColorTint دارد که باعث می شود که رنگ قالب ریبون تغییر کند !!
حالا من می خواهم از این خصوصیت در تنظیمات برنامه استفاده کنم !!
می خواهم به وسیله ColorPickerButton یک رنگ را از کاربر بگیرم (( که خودش می گیره )) و بعد اون را به StyleManager خصوصیت ManagerColorTint بدهم ولی نمی دانم از چه کدی استفاده کنم !!
اگه دوستان لطف کنند و کدش را بگذارند ، ممنون می شوم !!
منتظر...............

gilsoft
دوشنبه 22 اسفند 1390, 22:54 عصر
سلام دوست عزیز
من از کد زیر استفاده کردم و خوبم جواب داد
#Region "Automatic Color Scheme creation based on the selected color table"

Private m_ColorSelected As Boolean = False
Private m_BaseStyle As eStyle = eStyle.Office2010Silver
Private m_ColorTint As Boolean = False

Private Sub btnStyleCustom_ExpandChange(ByVal sender As Object, ByVal e As EventArgs) Handles btnStyleCustom.ExpandChange
If btnStyleCustom.Expanded Then
' Remember the starting color scheme to apply if no color is selected during live-preview
m_ColorSelected = False
m_BaseStyle = StyleManager.Style
Else
If Not m_ColorSelected Then
StyleManager.ChangeStyle(m_BaseStyle, Color.Empty)
End If
End If
End Sub

Private Sub btnStyleCustom_ColorPreview(ByVal sender As Object, ByVal e As DevComponents.DotNetBar.ColorPreviewEventArgs) Handles btnStyleCustom.ColorPreview
StyleManager.ColorTint = e.Color
m_ColorTint = True
btnStyleCustomOff.Enabled = m_ColorTint
End Sub

Private Sub buttonStyleCustom_SelectedColorChanged(ByVal sender As Object, ByVal e As EventArgs) Handles btnStyleCustom.SelectedColorChanged
m_ColorSelected = True ' Indicate that color was selected for buttonStyleCustom_ExpandChange method
btnStyleCustom.CommandParameter = btnStyleCustom.SelectedColor
End Sub

Private Sub AppCommandTheme_Executed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AppCommandTheme.Executed
Dim source As ICommandSource = TryCast(sender, ICommandSource)
If TypeOf source.CommandParameter Is String Then

Dim style As eStyle = CType(System.Enum.Parse(GetType(eStyle), source.CommandParameter.ToString()), eStyle)
' Using StyleManager change the style and color tinting
If style = eStyle.Metro Then
StyleManager.ColorTint = Nothing
m_ColorTint = False
Else
StyleManager.ChangeStyle(style, Color.Empty)
End If
If style = eStyle.Office2007Black OrElse style = eStyle.Office2007Blue OrElse style = eStyle.Office2007Silver OrElse style = eStyle.Office2007VistaGlass Then
btnSystem.BackstageTabEnabled = False
Else
btnSystem.BackstageTabEnabled = True
End If
ElseIf TypeOf source.CommandParameter Is Color Then
StyleManager.ColorTint = CType(source.CommandParameter, Color)
m_ColorTint = True
End If
btnStyleCustomOff.Enabled = m_ColorTint
End Sub
#End Region


ناگفته تماند که این کد رو از Sample خود DevComponents.dotnetbar برداشتم و یه کم اونو دستکاری کردم ! :چشمک:

tam2145
سه شنبه 23 اسفند 1390, 12:25 عصر
سلام دوست عزیز !!
ممنون !!
فقط اگه میشه سورس ساده را بگذارید بدون اضافات !!
در کل فرض بر این بگذارید که ما یک ColorPickerButton و یک StyleManager در فرم داریم و می خواهیم فقط رنگ گرفته شده از ColorPickerButton را به ManagerColorTint بدهیم !! همین !!
اگه می شود فقط سورس گرفتن و نسبت دادن رنگ را به صورت جداگانه بگذارید !! لطفا !!

tam2145
یک شنبه 28 اسفند 1390, 13:40 عصر
کسی نیست که بلد باشه رنگ را از ColorPickerButton بگیره و اونو به یک خصوصیت از نوع رنگ شئ بدهد ؟؟؟؟
سورس ساده با توضیح ..........................
نیاز دارم ............................................

tam2145
یک شنبه 28 اسفند 1390, 23:42 عصر
با سلام !!
خودم راه حل را پیدا کردم !!
اینجا می گذارم اگه کسی نیاز داشت ، دیگه نپرسه !!
ابتدا یک ColorPickerButton و StyleManager ایجاد کنید و یک ریبون کنترل که نتیجه را ببینید !!


Private Sub ColorPickerButton1_SelectedColorChanged(ByVal sender As Object, ByVal e As System.EventArgs)
StyleManager1.ManagerColorTint = ColorPickerButton1.SelectedColor
End Sub