When I create a PointSeries chart, the point's color is determined at moment the chart is showing. But I want the point's color changed with the datasource's some content after the chart was shown.
So I make a new PlotInfo class shown as below, and I set DefaultVisualMaterialSelector bind to PlotInfo's ColorFlag, with a Converter.
Finally, the project doesn't work, the point's color didn't change when I modify the ColorFlag.
So does ChartView3D support this kind of abbility? And how can I get what I want?
public class PlotInfo : INotifyPropertyChanged{ public event PropertyChangedEventHandler PropertyChanged; public double XValue { get; set; } public double YValue { get; set; } public string ZValue { get; set; } private string m_sColorFlag; public string ColorFlag { get { return m_sColorFlag;} set { m_sColorFlag = value; if(this.PropertyChanged != null) { PropertyChanged.Invoke(this, new PropertyChangedEventArgs("ColorFlag")); } } }}MainWindow.xaml
<Window x:Class="VariableMaterial.MainWindow" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:local="clr-namespace:VariableMaterial" mc:Ignorable="d" Title="MainWindow" Height="350" Width="525"> <Window.Resources> <local:ColorConvert x:Key="myColorConvert" /> </Window.Resources> <Grid> <Grid.RowDefinitions> <RowDefinition Height="30"/> <RowDefinition /> </Grid.RowDefinitions> <ToolBar Grid.Row="0" Height="auto"> <Button Content="SetColorFlag=A" Click="ButtonA_Click" Margin="10,0,0,0"/> <Button Content="SetColorFlag=B" Click="ButtonB_Click" Margin="10,0,0,0"/> </ToolBar> <telerik:RadCartesianChart3D Grid.Row="1"> <telerik:RadCartesianChart3D.XAxis> <telerik:LinearAxis3D /> </telerik:RadCartesianChart3D.XAxis> <telerik:RadCartesianChart3D.YAxis> <telerik:LinearAxis3D /> </telerik:RadCartesianChart3D.YAxis> <telerik:RadCartesianChart3D.ZAxis> <telerik:CategoricalAxis3D /> </telerik:RadCartesianChart3D.ZAxis> <telerik:RadCartesianChart3D.Series> <telerik:PointSeries3D PointSize="100" DefaultVisualMaterialSelector="{Binding ColorFlag, Converter={StaticResource myColorConvert}}" XValueBinding="XValue" YValueBinding="YValue" ZValueBinding="ZValue" ItemsSource="{Binding}"/> </telerik:RadCartesianChart3D.Series> <telerik:RadCartesianChart3D.Grid> <telerik:CartesianChart3DGrid /> </telerik:RadCartesianChart3D.Grid> <telerik:RadCartesianChart3D.Behaviors> <telerik:Chart3DCameraBehavior /> </telerik:RadCartesianChart3D.Behaviors> </telerik:RadCartesianChart3D> </Grid></Window>
MainWindow.xaml.cs
using System;using System.Collections.Generic;using System.Collections.ObjectModel;using System.Globalization;using System.Windows;using System.Windows.Data;using System.Windows.Media;using System.Windows.Media.Media3D;namespace VariableMaterial{ /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public ObservableCollection<PlotInfo> source = new ObservableCollection<PlotInfo>(); public MainWindow() { InitializeComponent(); PlotInfo info1 = new PlotInfo() { XValue = 1, YValue = 1, ZValue = "A", ColorFlag = "A", }; PlotInfo info2 = new PlotInfo() { XValue = 2, YValue = 2, ZValue = "B", ColorFlag = "B", }; source.Add(info1); source.Add(info2); this.DataContext = source; } private void ButtonA_Click(object sender, RoutedEventArgs e) { source[0].ColorFlag = "B"; } private void ButtonB_Click(object sender, RoutedEventArgs e) { source[1].ColorFlag = "A"; } } public class ColorConvert : IValueConverter { private Dictionary<Color, Material> colorToMaterialDict = new Dictionary<Color, Material>(); public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { string colorFlag = (string)value; Color color; if (colorFlag == "A") { color = (Color)ColorConverter.ConvertFromString("#007ACC"); } else { color = (Color)ColorConverter.ConvertFromString("#68217A"); } Material material; if (!this.colorToMaterialDict.TryGetValue(color, out material)) { material = new DiffuseMaterial(new SolidColorBrush(color)); colorToMaterialDict[color] = material; } return material; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }}
Hi I am building a custom Filtering Control which allows users to resize the control. Interacting with the thumbs to resize is working but,I have noticed that when i click on the main FilteringControl the whole Custom control will closes which means i can't filter my data :( . How can i stop this from occurring? Thanks in advance.
<UserControl x:Class="MyControls.Views.ResizableFilteringControl.ResizableFilteringControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
mc:Ignorable="d"
d:DesignHeight="500" d:DesignWidth="500" >
<UserControl.Resources>
</UserControl.Resources>
<Grid>
<StackPanel Margin="18" Background="White">
<telerik:FilteringControl Name="FilteringControl"></telerik:FilteringControl>
<Grid>
<Thumb Name="SouthEastThumb"
HorizontalAlignment="Left"
VerticalAlignment="Bottom"
Width="16" Height="16"
MouseEnter="OnMouseEnter"
DragStarted="OnDragStarted"
DragDelta="OnDragDelta"
DragCompleted="OnDragCompleted"/>
<Thumb Name="SouthWestThumb"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Width="16" Height="16"
MouseEnter="OnMouseEnter"
DragStarted="OnDragStarted"
DragDelta="OnDragDelta"
DragCompleted="OnDragCompleted"/>
</Grid>
</StackPanel>
</Grid>
</UserControl>
Code behind:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Core.Native;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.GridView;
using GridViewColumn = Telerik.Windows.Controls.GridViewColumn;
namespace MyControls.Views.ResizableFilteringControl
{
/// <summary>
/// Interaction logic for ResizableFilteringControl.xaml
/// </summary>
public partial class ResizableFilteringControl : IFilteringControl
{
//TODO fix issue with control not remiaing open when i click on the FilteringControl.
//TODO add style to Thumbs.
public ResizableFilteringControl()
{
InitializeComponent();
}
public void Prepare(GridViewColumn columnToPrepare)
{
this.FilteringControl?.Prepare(columnToPrepare);
}
public bool IsActive
{
get { return (bool)GetValue(IsActiveProperty); }
set { SetValue(IsActiveProperty, value); }
}
/// <summary>
/// Identifies the <see cref="IsActive"/> dependency property.
/// </summary>
public static readonly DependencyProperty IsActiveProperty =
DependencyProperty.Register(
"IsActive",
typeof(bool),
typeof(ResizableFilteringControl),
new System.Windows.PropertyMetadata(false));
private void OnDragStarted(object sender, DragStartedEventArgs e)
{
SetCursor(sender);
}
private void OnDragDelta(object sender, DragDeltaEventArgs e)
{
//TODO make resize to left.
var yadjust = FilteringControl.RenderSize.Height + e.VerticalChange;
var xadjust = this.FilteringControl.RenderSize.Width + e.HorizontalChange;
if (IsResizeAllowed(xadjust, yadjust))
{
this.FilteringControl.Width = xadjust;
this.FilteringControl.Height = yadjust;
}
}
private static bool IsResizeAllowed(double xadjust, double yadjust)
{
//TODO let consumer specify these values so they are not hard coded.
return (xadjust >= 50 && yadjust >= 50) &&
(xadjust <= 800 && yadjust <= 800);
}
private void OnDragCompleted(object sender, DragCompletedEventArgs e)
{
var t = (Thumb)sender;
t.Cursor = null;
}
private void OnMouseEnter(object sender, MouseEventArgs e)
{
SetCursor(sender);
}
private static void SetCursor(object sender)
{
var thumb = sender as Thumb;
if (thumb != null)
{
if (thumb.Name == "SouthWestThumb")
{
thumb.Cursor = Cursors.SizeNWSE;
}
else if (thumb.Name == "SouthEastThumb")
{
thumb.Cursor = Cursors.SizeNESW;
}
else
{
thumb.Cursor = null;
}
}
}
}
}
I have included the error below
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ArgumentException: Font 'Calibri Bold Caps' does not support style 'Italic'.
at System.Drawing.Font.CreateNativeFont()
at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
at System.Drawing.Font..ctor(Font prototype, FontStyle newStyle)
at Fiddler.FiddlerToolbar.<>c.˜(Object , MouseEventArgs ) in C:\JenkinsHome\jobs\FiddlerReleaseBuild\workspace\Fiddler2\Common\Application\FiddlerToolbar.cs:line 744
at System.Windows.Forms.ToolStripItem.RaiseMouseEvent(Object key, MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseDown(MouseEventArgs e)
at System.Windows.Forms.ToolStrip.OnMouseDown(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3801.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
Fiddler
Assembly Version: 5.0.20182.28034
Win32 Version: 5.0.20182.28034
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Fiddler.exe
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3801.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3815.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Xceed.Zip.v5.4
Assembly Version: 5.4.13572.13590
Win32 Version: 5.4.13572.13590
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Xceed.Zip.v5.4.DLL
----------------------------------------
Xceed.Compression.Formats.v5.4
Assembly Version: 5.4.13572.13590
Win32 Version: 5.4.13572.13590
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Xceed.Compression.Formats.v5.4.DLL
----------------------------------------
Xceed.FileSystem.v5.4
Assembly Version: 5.4.13572.13590
Win32 Version: 5.4.13572.13590
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Xceed.FileSystem.v5.4.DLL
----------------------------------------
Xceed.Compression.v5.4
Assembly Version: 5.4.13572.13590
Win32 Version: 5.4.13572.13590
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Xceed.Compression.v5.4.DLL
----------------------------------------
Microsoft.mshtml
Assembly Version: 7.0.3300.0
Win32 Version: 7.0.3300.0
CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.mshtml/7.0.3300.0__b03f5f7f11d50a3a/Microsoft.mshtml.dll
----------------------------------------
Standard
Assembly Version: 2.6.2.0
Win32 Version: 2.6.2.0
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Inspectors/Standard.dll
----------------------------------------
SyntaxView
Assembly Version: 2.6.2.0
Win32 Version: 2.6.2.0
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Inspectors/SyntaxView.dll
----------------------------------------
FiddlerOrchestra.Addon
Assembly Version: 1.0.20182.28033
Win32 Version: 1.0.20182.28033
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Scripts/FiddlerOrchestra.Addon.dll
----------------------------------------
FiddlerOrchestra.Connection
Assembly Version: 1.0.20182.28033
Win32 Version: 1.0.20182.28033
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Scripts/FiddlerOrchestra.Connection.dll
----------------------------------------
netstandard
Assembly Version: 2.0.0.0
Win32 Version: 4.8.3761.0
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/netstandard/v4.0_2.0.0.0__cc7b13ffcd2ddd51/netstandard.dll
----------------------------------------
FiddlerOrchestra.Protocol
Assembly Version: 1.0.20182.28033
Win32 Version: 1.0.20182.28033
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Scripts/FiddlerOrchestra.Protocol.dll
----------------------------------------
FiddlerOrchestra.Utilities
Assembly Version: 1.0.20182.28033
Win32 Version: 1.0.20182.28033
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Scripts/FiddlerOrchestra.Utilities.dll
----------------------------------------
ImageBloat
Assembly Version: 2.6.0.2
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Scripts/ImageBloat.dll
----------------------------------------
RulesTab2
Assembly Version: 2.6.2.0
Win32 Version: 2.6.2.0
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Scripts/RulesTab2.dll
----------------------------------------
SimpleFilter
Assembly Version: 2.6.2.0
Win32 Version: 2.6.2.0
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Scripts/SimpleFilter.dll
----------------------------------------
Timeline
Assembly Version: 2.6.0.3
Win32 Version: 2.6.0.3
CodeBase: file:///C:/Users/Temporary/AppData/Local/Programs/Fiddler/Scripts/Timeline.dll
----------------------------------------
Microsoft.JScript
Assembly Version: 10.0.0.0
Win32 Version: 14.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.JScript/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.JScript.dll
----------------------------------------
System.Windows
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3761.0
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Windows.dll
----------------------------------------
JScript Thunk Assembly
Assembly Version: 0.0.0.0
Win32 Version: 14.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.JScript/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.JScript.dll
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
efCDWpUn
Assembly Version: 0.0.0.0
Win32 Version: 14.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.JScript/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.JScript.dll
----------------------------------------
Microsoft.GeneratedCode
Assembly Version: 1.0.0.0
Win32 Version: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Security
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Security/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Security.dll
----------------------------------------
System.Net.Http
Assembly Version: 4.0.0.0
Win32 Version: 4.8.3761.0 built by: NET48REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Net.Http/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Net.Http.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
<p> private void RadRibbonView_SelectionChanged(object sender, RadSelectionChangedEventArgs e)<br> {</p><p> var ribbon = (sender as RadRibbonView);</p><p> if (ribbon.SelectedItem is RadRibbonTab)<br> {<br> //DO STUFF<br> }<br> else if (ribbon.SelectedItem is RadRibbonBackstage)<br> {<br> //DO OTHER STUFF<br> }</p>If I click on the backstage, this always triggers as a tab....which is causing me many problems.
Hi,
We have an option to close our app in our Backstage panel:
var result = MessageBox.Show(unsavedChangesMsg, Properties.Resources.MessageBoxTitle_Confirmation, MessageBoxButton.OKCancel, MessageBoxImage.Question);...if the user selected "Cancel" then the ribbon goes to last tab selected instead of staying in the backstage. The backstage isn't considered to be a tab it seems, so keeping it open is problematic it seems.
I've tried:
- Hiding all tabs.
- Unselecting all tabs.
- MasterRadRibbonView.SelectedIndex = -1;
- MasterRadRibbonView.SelectedItem = MasterRadRibbonView.Backstage;
- IsBackstageOpen = true; //databinding
...and a few other things, but when the screen comes back after the user exits out of the pop-up window, the last tab is loaded, when we want it to stay on the Backstage until the user selects a tab themselves.
Barry

Hello,
what is the purpose of setting the SelectionBoxesVisibility property to Collapsed ? When I do this, the MultiClumnComboBox does not show any value, as if no item is selected.
Regards,
Hans
Hi, i have some problem.
The image editor created by wpf works normally. However, if you link to other programs, you will not see all the components. (Please refer to attached file)
I don't know why act like that. I look forward to your valuable feedback.
Thanks
| <telerik:RadTabControl> |
| <telerik:RadTabItem Header="{Binding ElementName=operationContentControl, Path=Content.DataContext.Header}" IsSelected="{Binding IsOperationSelected, Mode=TwoWay}"> |
| <ContentControl x:Name="operationContentControl" cal:RegionManager.RegionName="{x:Static infrastructure:RegionNames.MainRegion}" /></telerik:RadTabItem> |
| <telerik:RadTabItem Header="{Binding ElementName=protocolContentControl, Path=Content.DataContext.Header}" IsSelected="{Binding IsProtocolSelected, Mode=TwoWay}" Visibility="{Binding IsProtocolVisible, Converter={StaticResource boolToVisibilityConverter}}"> |
| <ContentControl x:Name="protocolContentControl" cal:RegionManager.RegionName="{x:Static infrastructure:RegionNames.ProtocolRegion}" /><telerik:RadTabItem> |
| </telerik:RadTabControl> |