Jump to content
Software FX Community

MMCCPaulEden

Members
  • Posts

    88
  • Joined

  • Last visited

Everything posted by MMCCPaulEden

  1. Hi Pairing axis labels with data is not in our best interests at present due to the potential size of data we deal with - do you have any timescales for the templating update? Many thanks Paul
  2. Hi We're having trouble making this work. Given the Template of: <Window.Resources> <!-- //' Axis-x label wrapping--> <DataTemplate x:Key="ChartLabel" > <TextBlock Width="50" Text="{Binding Path=DataItem.Name}" TextWrapping="Wrap" Foreground="Black" FontFamily="{Binding Path=FontFamily}" FontSize="{Binding Path=FontSize}"/> </DataTemplate> </Window.Resources> Setting the Axis-x labels manually(for testing): oChart.AxisX.Labels.Items.Add( "really very quite long lbl2");oChart.AxisX.Labels.Items.Add("really very quite long lbl3");oChart.AxisX.Labels.Items.Add( "really very quite long lbl4");Applying template: oChart.AxisX.Template = Resources[ "ChartLabel"] as DataTemplate;When the above compiles the axis-x labels go not appear - I can understand that DataItem.Name doe snot exist (that is the compiler message that get generated) but I can't fathom what the binding should be. Many thanks Paul
  3. Hi Are you aware of any issues with the above when UAC is enabled on Vista (Home Premium) machines? Thanks Paul
  4. Hi We're using the above in conjunction with the collapsable legendbox style and were trying to add functionality to allow the user to select / de-select all. While using a simple boolean to toggle all series on or off works, the legend box seems to get out of sync with the dependency property value, despite its binding. The styles are as follows: <DataTemplate x:Key="CheckLegend"> <DataTemplate.Resources> <local:VisibilityToBooleanConverter x:Key="VisibilityToBool"/> </DataTemplate.Resources> <Grid Name="grid"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" SharedSizeGroup="FirstRow" /> <ColumnDefinition Width="*" SharedSizeGroup="FirstRow" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <CheckBox VerticalAlignment="Center" Background="{Binding Path=Fill}" IsChecked="{Binding Path=Visibility, Converter={StaticResource VisibilityToBool}}" Grid.Column="0" Foreground="White" /> <cfxControls:MarkerLegendControl Content="{Binding Path=Self}" Grid.Column="1" /> <Border Background="Transparent" Grid.Column="2" VerticalAlignment="Center"> <ContentControl IsHitTestVisible="false" Content="{Binding Path=Content}" ContentTemplate="{Binding Path=ContentTemplate}" /> </Border> </Grid> <DataTemplate.Triggers> <DataTrigger Binding="{Binding Path=Dimmed}"> <DataTrigger.Value> <sys:Boolean>True</sys:Boolean> </DataTrigger.Value> <Setter Property="Opacity" Value="0.25" TargetName="grid" /> </DataTrigger> </DataTemplate.Triggers> </DataTemplate> <Style TargetType="{x:Type ItemsControl}" x:Key="LegendBoxStyle"> <Style.Setters> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ItemsControl}"> <Expander Header="Legend Box" Foreground="White"> <ScrollViewer Margin="0,5,0,0"> <ItemsPresenter /> </ScrollViewer> </Expander> </ControlTemplate> </Setter.Value> </Setter> </Style.Setters> </Style> Our code that itterates though series to toggle visibility is: foreach (SeriesAttributes series in mChart.Series) { if (mAllSeriesOn) series.Visibility = Visibility.Visible; elseseries.Visibility = Visibility.Hidden; } I have noticed that while the legend box is collapsed on first expand the checkboxes have the right value, but after this syncronisation with the underlying property is lost even if you collapse the legend again. Any thoughts on this? Many thanks Paul
  5. Hi When we use AxisY.Labels.Visibility property to show labels after previously hiding them, the PlotArea fails to resize to acommodate them, meaning all you see is the right most edge of the last letter. Chart.Refresh() has no effect - is there anything I can do to make the plot area resize as it should do? Thanks Paul
  6. Hi Any advance on this? Many thanks Paul
  7. Is there any plan to work this fucntionality into the control by default? Our charts are dynamicly sized / re-sized so fixed values will not work for us.
  8. Hi We just had a look at the DataView ability on the charts - it looks good but we found that when used in conjunciton with large data volumes (50+ series, each with 20+ data points) the grid has a tendancy to fill all the available vertical space. With a chart sized at around 300x300 and showing the grid via user interaction rather than by default, the grid area is enclosed in scrollbars as you would expect but it totally wipes out the plot area. The only way to get the plot area to display is by increasing the height of the chart untill the vertical scrollbars disappear from the DataView. Setting the PlotArea.MinSize to 50 (as another post indicated it is a percentage, so 100+ is pointless) has no effect on this. Is there anything else that can be done to ensure a balance of space usage between the 2 displays? Many thanks
  9. There does not seem to be a ContainerStyle property off of the LegendBox property on a chart - your code was my first choice of action and I figured I must have been way off. Thanks for looking into the forum thing Paul
  10. Hi Your new documentation mentions the above label type, but there seems to be a load of accompanying documentation missing for it. Is there an update to documentation to cover this hole with samples? The secion in question is Axes--> Manipulating Dates and Times. There seems to be missing figures and either source code or links to source code. Many thanks Paul
  11. Hi The following XAML is taken from your samples app: <cfx:Chart Name="chart1" Border="{x:Static cfx:Borders.Classic}" Palette="{x:Static cfx:Palettes.Basic}" Style="{x:Static cfxmotifs:Simple.Style}"><cfx:Chart.LegendBox><cfx:LegendBox><cfx:LegendBox.ContainerStyle><Style TargetType="{x:Type ItemsControl}"><Style.Setters><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type ItemsControl}"> <Expander Header="Legend Box"><ItemsPresenter /></Expander></ControlTemplate></Setter.Value></Setter></Style.Setters></Style></cfx:LegendBox.ContainerStyle></cfx:LegendBox></cfx:Chart.LegendBox> </cfx:Chart> As I generate charts on the fly at runtime, how can I apply the LegendBox style in c#? Asa sidenode, defaulting carriage returns to paragraphs on this forum makes pasting code hell... Many thanks Paul
  12. Hi If you have large y-axis labels on a Gantt chart (50+ characters) the label texts have a tendency to not display correctly with either the text justification pushing the labels outside the bounds of the control or overflowing the bounds. Is it possible tomake your lables wrap text instead? Thanks Paul
  13. Please disregard my last - I was working on the wrong virtual machine ) I would delete it but your forum has update timeouts which have timed out. Question regarding clone vs serialization still stands though.
  14. In addition there is no reference to Clone in the supplied documentation with the trial install and there is no Clone method off of your chart object - could you supply an example? Thanks
  15. Thanks for the update - can you confirm if your control would be compatible if used in conjunction with the XamlWriter and XamlReader? We use your control in conjunction with another, which is the one firing the serialization routines. With reference to the Clone API, you say that it returns a cloned chart. This sounds a lot like it is just duplicating an object to create another rather then a serialization of the object to something like XML for persistance outside of the application - is this assumption correct? Many thanks Paul
  16. Hi So given my code snippet above, is it possible to use that code (or, should it be possible) to serialize a chart to XML? If not, can you provide a sample that works? We require a complete serialization, including data (we don't use styles for the bar / line visuals). Your post hints that serialization is not currently 100% working - is this the case? Many thanks Paul
  17. Does ChartFX have any advice regarding this? Preferred searlialization methods / investigation in progress? Thanks Paul
  18. Hi Juan We had intended to build this up a little at a time to provide replication code, but tripped at the blocks... In an attempt to serialize a Chart we started with the following line: XmlSerializer oXS = new XmlSerializer(typeof(ChartFX.WPF.Chart)) But it generates an exception: System.InvalidOperationException was unhandled Message="There was an error reflecting type 'ChartFX.WPF.Chart'." Source="System.Xml" StackTrace: at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportElement(TypeModel model, XmlRootAttribute root, String defaultNamespace, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace) at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace) at System.Xml.Serialization.XmlSerializer..ctor(Type type) at ChartFX_Serialize.Window1.btnSerialize_Click(Object sender, RoutedEventArgs e) in C:\Users\Neutrino_1\AppData\Local\Temporary Projects\ChartFX_Serialize\Window1.xaml.cs:line 31 at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) at System.Windows.Controls.Primitives.ButtonBase.OnClick() at System.Windows.Controls.Button.OnClick() at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e) at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) at System.Windows.UIElement.CrackMouseButtonEventAndReRaiseEvent(DependencyObject sender, MouseButtonEventArgs e) at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) at System.Windows.Input.InputManager.ProcessStagingArea() at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) at System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Boolean isSingleParameter) at System.Windows.Threading.Dispatcher.Invoke(DispatcherPriority priority, Delegate method, Object arg) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) at System.Windows.Threading.Dispatcher.Run() at System.Windows.Application.RunDispatcher(Object ignore) at System.Windows.Application.RunInternal(Window window) at System.Windows.Application.Run(Window window) at System.Windows.Application.Run() at ChartFX_Serialize.App.Main() in C:\Users\Neutrino_1\AppData\Local\Temporary Projects\ChartFX_Serialize\obj\Debug\App.g.cs:line 0 at System.AppDomain._nExecuteAssembly(Assembly 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.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() InnerException: System.InvalidOperationException Message="There was an error reflecting property 'InputBindings'." Source="System.Xml" StackTrace: at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel model, String ns, Boolean openModel, XmlAttributes a, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel model, String ns, Boolean openModel, XmlAttributes a, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel model, String ns, Boolean openModel, XmlAttributes a, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel model, String ns, Boolean openModel, XmlAttributes a, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter) InnerException: System.InvalidOperationException Message="There was an error reflecting type 'System.Windows.Input.InputBinding'." Source="System.Xml" StackTrace: at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.CreateArrayElementsFromAttributes(ArrayMapping arrayMapping, XmlArrayItemAttributes attributes, Type arrayElementType, String arrayElementNs, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportArrayLikeMapping(ArrayModel model, String ns, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping(MemberMapping accessor, FieldModel model, XmlAttributes a, String ns, Type choiceIdentifierType, Boolean rpc, Boolean openModel, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportFieldMapping(StructModel parent, FieldModel model, XmlAttributes a, String ns, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter) InnerException: System.InvalidOperationException Message="Cannot serialize member 'System.Windows.Input.InputBinding.Command' of type 'System.Windows.Input.ICommand', see inner exception for more details." Source="System.Xml" StackTrace: at System.Xml.Serialization.StructModel.CheckSupportedMember(TypeDesc typeDesc, MemberInfo member, Type type) at System.Xml.Serialization.StructModel.GetPropertyModel(PropertyInfo propertyInfo) at System.Xml.Serialization.StructModel.GetFieldModel(MemberInfo memberInfo) at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel model, String ns, Boolean openModel, XmlAttributes a, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter) InnerException: System.NotSupportedException Message="Cannot serialize member System.Windows.Input.InputBinding.Command of type System.Windows.Input.ICommand because it is an interface." InnerException:
  19. Anyone care to comment on this?
  20. Hi Chart serialization is benf fired by another 3rd party component, which acts as a container for the Chart control. As above, only serialization in conjunction with a ChartFX chart generates the exception. After a small amount of research on the web, I have seen comments saying that the error message is misleading and (in one instance) was actually being thrown from a FileStream object: http://www.pcreview.co.uk/forums/thread-2330646.php Is there anything in the ChartFX chart object that could be doing this? Thanks
  21. Hi I'm trying to track down a serialization issue and currently things are pointing at ChartFX - during serialization I get the following error: A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in System.dll Property accessor 'ReadTimeout' on object 'System.IO.MemoryStream' threw the following exception:'Timeouts are not supported on this stream.' Anyone else having similar issues? Thanks Paul
  22. Thanks for the update - with the most recent version, are there any aspects that are dependant on VS2008 / Framework3.5 service pack 1?
  23. Would Chart FX like to comment on this? Having just changed some code and started to populate the chart.Title property again, this error has resurfaced - when the title was being left blank the issue does not occurr.
×
×
  • Create New...