Hi
Is there any way to make milestones from an icon?
What about at least changing the color of the default ones(per individual milestone instance)?
Hello Florin,
Thank you for posting in our forum.
Yes, you can set the appearance of the milestone indicator. This allows you to set an image, back color, fore color, borders and so on, all the properties exposed by Appearance class. More about Appearance class you may find by following the next link http://help.infragistics.com/Help/Doc/WinForms/2016.1/CLR4.0/html/Infragistics4.Win.v16.1~Infragistics.Win.Appearance_members.html.
The appearance of milestone indicator is exposed through BarSettingsMilestone property of TimelineSettings of the task. You can use code like this to set the back color or the image of the milestone indicator:
// Set back color to red
MyTask.TimelineSettings.BarSettingsMilestone.EndIndicatorAppearance.BackColor = Color.Red;
// Set the image to some custom image
MyTask.TimelineSettings.BarSettingsMilestone.EndIndicatorAppearance.Image = MyImage;
Please let me know if you need any additional information.
Thank you for using Infragistics Controls.
Thank you for your answer. I did manage to put an image in there, as the customer asked. however it seems that I am limited in size to 16 x16 pixels.
Is it any way to allow for a more visible 32x32 icon?
Thank you for your feedback.
Yes, you can set the size of the milestone indicator by setting IndicatorSize property. You can use code like this:
task.TimelineSettings.BarSettingsMilestone.IndicatorSize = new Size(32, 32);
Please keep in mind the height of the indicator is limited by the height of the corresponding row in the grid. One way to solve this is to set the size of the grid to some big value. However this may ruin your appearance. Other possible solution is to implement IUIElementDrawFilter interface. In your draw filter you may set the size and location of milestone indicators as you need them. In the attached sample project I have implemented this approach for you. Note that when you resize the indicators some of them may go outside of the chart area and will be clipped, and also some of them may overlap other elements from the user interface. With this in mind you may try different sizes until you find the one that is big enough and does not interfere badly with surroundings.
Please let me know if you have any additional questions.
Thank you.So it works well with 24x24 and I managed to resize also the row height so it would not be looking strange.
meetEngineer.GridSettings.RowAppearance.TextVAlign = VAlign.Middle;
meetEngineer.RowHeight = 26;
However, I think I stumbled upon a bug. If in design mode you set the controls' property "UseAppStyling" to "false" the second line will cause an exception(something about attempting to access a null pointer/object), but only if it is called before the form actually shows up. Afterwards, it is ok. Strangely, the row resizing is actually done , in spite of the exception being thrown.
Hi Florin,
I have tested this in my sample. I have set UseAppStyling to False. Then I have moved the task adding logic in the form’s constructor and have set RowHeight as you shown in your code snipped. No exceptions were thrown in my sample. Can you please let me know which specific version of Infragistics Controls you are using so I can investigate this further?
Looking forward to your reply.
So the version of the assembly is 10.2.20102.1004, runtime version v2.0.50727.
I have used this:
private void Form1_Shown(object sender, EventArgs e)
{
specReview.GridSettings.RowAppearance.TextVAlign = VAlign.Middle;
specReview.RowHeight = 26;
}
Environment:
Microsoft Visual Studio Professional 2013Version 12.0.40629.00 Update 5Microsoft .NET FrameworkVersion 4.6.01055
Installed Version: Professional
One more thing: the execution did not stop even though I was in Debug mode (Form class has a catch and ignore maybe). But have a look in the output window for something like:
A first chance exception of type 'System.NullReferenceException' occurred in Infragistics2.Win.UltraWinGanttView.v10.2.dll
Thank you for your effort. I can try to make a sample project if it really does not replicate on your end. It may also be some quirk on my machine.
-Florin
I managed to get the exception's stack trace, maybe it helps you at least narrow it down:
at Infragistics.Win.UltraWinGanttView.Grid.GanttViewGrid.TaskManager_PropertyChanged(TaskManager sender, TaskManagerPropertyChangedEventArgs e) at Infragistics.Win.UltraWinGanttView.Internal.TaskManager.FirePropertyChanged(TaskManagerPropertyChangedType changeType, Object context, TaskManagerPropertyChangedTrigger trigger) at Infragistics.Win.UltraWinGanttView.Internal.TaskProxy.SetRowHeight(Object sender, Int32 value) at Infragistics.Win.UltraWinGanttView.Internal.TaskProxy.OnTaskSubObjectPropChange(PropChangeInfo propChangeInfo) at Infragistics.Shared.SubObjectPropChangeEventHandler.Invoke(PropChangeInfo propChange) at Infragistics.Shared.SubObjectBase.NotifyPropChange(PropChangeInfo trigger) at Infragistics.Shared.SubObjectBase.NotifyPropChange(Enum propId) at Infragistics.Win.UltraWinSchedule.Task.set_RowHeight(Int32 value) at Test_DanTeService_DataModel.Form1.Form1_Shown(Object sender, EventArgs e) in c:\Work\DanTe\DanTeCore\trunk\Test_DanTeService_DataModel\Form1.cs:line 169 at System.Windows.Forms.Form.OnShown(EventArgs e) at System.Windows.Forms.Form.CallShownEvent() at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbacks() at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.Form.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at Test_DanTeService_DataModel.Program.Main() in c:\Work\DanTe\DanTeCore\trunk\Test_DanTeService_DataModel\Program.cs:line 19 at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()
Yes, you are correct. This is a known bug in the grid control, which we have fixed in version 12.1. So, if you are able try to upgrade to at least version 12.1 latest service release.
Please let me know if you need any additional assistance.
Thank you for the good news. I hope the license will bought, otherwise I am stuck with this old version because of the current project policy. They said some time ago that it is going to happen , but it is a company management thing... I am currently trying to make some sort of a demo for a new change request and hitting all sorts of problems because of their weird way of conceptualizing things. Anyway, thank you for your support and if you can help with the other issue I posted ("Chart area context menu") it would be great. But tomorrow, today it is too late. -Florin
Please note we have answered your questions regarding context menu at the other forum thread you have opened here http://www.infragistics.com/community/forums/p/106466/502082.aspx#502082