In high DPI screen,many software's cursor is too small,include the telerik UI,but besides the microsoft.
I got the following code to resolve the problem,you can try:
static ConstructorInfo _cursorScaleStreamCtor= typeof(Cursor).GetConstructor(new Type[2]
{
typeof(Stream),
typeof(bool)
});
//uri refer to the *.cur file(normal 32x32),compile for resource
internal static Cursor LoadCursor(Uri uri)
{
StreamResourceInfo resourceStream = Application.GetResourceStream(uri);
if ( _cursorScaleStreamCtor != null)
{
return (Cursor)_cursorScaleStreamCtor.Invoke(new object[2]
{
resourceStream.Stream,
true
});
}
return new Cursor(resourceStream.Stream);
}
I like the new Glyph-feature and use it in my recent project. Unfortunately the Glyph-Icons are not visible during design time in VS 2013, I can only see an empty rectangle. What do I have to do so these icons are also visible during design?
Regards
Heiko
Hi
The zero data caused NAN case.
Please check the data of the attached file.
Is there any way to remove NAN?
My code.
dataprovider.AggregateDescriptions.Add(new PropertyAggregateDescription()
{
PropertyName = "AAA",
AggregateFunction = AggregateFunctions.Sum,
TotalFormat = new PercentOfColumnTotal()
});
Chart.Series.Add(new LineSeries
{
CategoryBinding = binding,
ValueBinding = ...,
StrokeThickness = 1,
Stroke = ...,
ItemsSource = vm.Datas,
TrackBallInfoTemplate = // difficult to create
});
TrackBallInfoTemplate is difficult to create, how can i only set a stringformat to use trackballinfo
An earlier post explains how to set IsUndoEnabled=false to prevent RadNumericUpDown from handling undo. I did that, and it disabled the local undo feature. However, when focus is on the control and I press Ctrl-Z or Ctrl-Y, my global commands are not executed, although they work when focus is not on the RadNumericUpDown.
I tried two approaches to resolve this: adding a KeyDown handler, and adding local input bindings. The KeyDown handler receives the LControl key, but not the Z or Y keys while LControl is pressed. The local input bindings don't seem to do anything (see below).
So, after setting IsUndoEnabled=false, how do I get Ctrl-Z and Ctrl-Y to execute my global commands when focus is on the RadNumericUpDown control?
<telerik:RadNumericUpDown VerticalAlignment="Center"
NumberDecimalDigits="2"
Margin="0"
Width="80"
Loaded="RadNumericUpDown_Loaded"
Value="{Binding Width}">
<telerik:RadNumericUpDown.InputBindings>
<KeyBinding Gesture="Ctrl+Z" Command="{Binding UndoCommand}" />
<KeyBinding Gesture="Ctrl+Y" Command="{Binding RedoCommand}" />
</telerik:RadNumericUpDown.InputBindings>
</telerik:RadNumericUpDown>
Hello!
How can I dynamically customize RibbonView quick access toolbar? I want to show and hide buttons using quick access toolbar menu like in Microsoft Office applications. It seems that this is not possible and menu is not customizable either.
Thank you.
I am making a test app to measure the loading speed of Windows DataGrid vs RadGrid. In the app I was binding Data Tables and Collections into DataGrid and RadGrid. Binding to the Windows DataGrid I would see and average time of 5ms for DataTables and 1.5ms for Collections. When you bind to RadGrid I get 200-400ms regardless of the type. Any ideas?
<telerik:RadBusyIndicator IsBusy="{Binding Path=IsBusy}">
<Grid DataContext="{Binding Telerik, Source={StaticResource Locator}}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.Resources>
<Style TargetType="DataGrid">
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
<Setter Property="Margin" Value="10"/>
</Style>
<Style TargetType="Button">
<Setter Property="Width" Value="75"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="10"/>
</Style>
<Style TargetType="TextBlock">
<Setter Property="Width" Value="75"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="10"/>
</Style>
<Style x:Key="TextLabel" TargetType="TextBlock">
<Setter Property="HorizontalAlignment" Value="Right"/>
<Setter Property="VerticalAlignment" Value="Center"/>
<Setter Property="Margin" Value="2"/>
<Setter Property="FontWeight" Value="Bold"/>
</Style>
<Style x:Key="ToolBarImage" TargetType="Image">
<Setter Property="Width" Value="20"/>
<Setter Property="Height" Value="20"/>
<Setter Property="Margin" Value="1"/>
</Style>
</Grid.Resources>
<ToolBarTray>
<ToolBar>
<Button Command="{Binding ExitCommand}" ToolTip="Home">
<Grid>
<Image Source="{StaticResource Home}" Style="{StaticResource ResourceKey=ToolBarImage}"/>
</Grid>
</Button>
<Button Command="{Binding DataCommand}" ToolTip="Execute" >
<Grid>
<Image Source="{StaticResource Play}" Style="{StaticResource ResourceKey=ToolBarImage}"/>
</Grid>
</Button>
<Button Command="{Binding ResetCommand}" ToolTip="Reset">
<Grid>
<Image Source="{StaticResource Reset}" Style="{StaticResource ResourceKey=ToolBarImage}"/>
</Grid>
</Button>
<Separator/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Execution Time:" Style="{StaticResource TextLabel}"/>
<TextBlock Text="{Binding TimeElapsed, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, StringFormat={}{0:F3} ms}"/>
</StackPanel>
<Separator/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Average Time:" Style="{StaticResource TextLabel}"/>
<TextBlock Text="{Binding AvgTimeElapsed, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, StringFormat={}{0:F3} ms}"/>
</StackPanel>
<Separator/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Times executed: " Style="{StaticResource TextLabel}"/>
<TextBlock Text="{Binding ExecutedNum, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</StackPanel>
</ToolBar>
</ToolBarTray>
<telerik:RadGridView Grid.Row="1" Grid.Column="0" ItemsSource="{Binding MoldData}" Name="dataGridView1"/>
</Grid>
</telerik:RadBusyIndicator>
Chart.Series.Add(new LineSeries
{
CategoryBinding = binding,
ValueBinding = ...,
StrokeThickness = 1,
Stroke = ...,
ItemsSource = vm.Datas,
TrackBallInfoTemplate = // difficult to create
});
TrackBallInfoTemplate is difficult to create, how can i only set a stringformat to use trackballinfo
Hello,
I have some of GridViewCheckBoxColumn and GridViewComboBoxColumn that bound to nested property which works perfectly. But when I try to use ExportToXlsx() to export into excel file, result from every columns that bound to nested property are different.
GridViewCheckBoxColumn bound to nested property yields True/False instead of TRUE/FALSE and GridViewComboBoxColumn yields selected value instead of display value which I preferred display value.
Is there anyway to make all columns regardless of nested property binding to be exported in the same format?
Here's my sample code
<
Window
x:Class
=
"WpfApplication3.Window4"
xmlns:local
=
"clr-namespace:WpfApplication3"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
mc:Ignorable
=
"d"
Title
=
"Window4"
Width
=
"800"
Height
=
"300"
>
<
StackPanel
>
<
telerik:RadGridView
Name
=
"grid1"
ItemsSource
=
"{Binding GridItemSoure}"
AutoGenerateColumns
=
"False"
>
<
telerik:RadGridView.Columns
>
<
telerik:GridViewDataColumn
Header
=
"Display"
DataMemberBinding
=
"{Binding Display}"
/>
<
telerik:GridViewCheckBoxColumn
Header
=
"IsChecked"
DataMemberBinding
=
"{Binding IsChecked}"
/>
<
telerik:GridViewComboBoxColumn
Header
=
"SelectedItem"
DataMemberBinding
=
"{Binding SelectedItemId}"
ItemsSource
=
"{Binding ComboItemSource}"
DisplayMemberPath
=
"Display"
SelectedValueMemberPath
=
"Id"
/>
<
telerik:GridViewDataColumn
Header
=
"Amount"
DataMemberBinding
=
"{Binding Amount}"
/>
<
telerik:GridViewDataColumn
Header
=
"This.Display"
DataMemberBinding
=
"{Binding This.Display}"
/>
<
telerik:GridViewCheckBoxColumn
Header
=
"This.IsChecked"
DataMemberBinding
=
"{Binding This.IsChecked}"
/>
<
telerik:GridViewComboBoxColumn
Header
=
"This.SelectedItem"
DataMemberBinding
=
"{Binding This.SelectedItemId}"
ItemsSource
=
"{Binding ComboItemSource}"
DisplayMemberPath
=
"Display"
SelectedValueMemberPath
=
"Id"
/>
<
telerik:GridViewDataColumn
Header
=
"This.Amount"
DataMemberBinding
=
"{Binding This.Amount}"
/>
</
telerik:RadGridView.Columns
>
</
telerik:RadGridView
>
<
Button
Click
=
"Button_Click"
>Export</
Button
>
</
StackPanel
>
</
Window
>
public
partial
class
Window4 : Window
{
public
Window4()
{
InitializeComponent();
this
.DataContext =
new
{
GridItemSoure =
new
List<RowItem>()
{
new
RowItem() { Display =
"Row1"
, IsChecked =
true
, SelectedItemId =
null
, Amount = 9.999m },
new
RowItem() { Display =
"Row2"
, IsChecked =
false
, SelectedItemId =
null
, Amount = 10000 },
new
RowItem() { Display =
"Row3"
, IsChecked =
true
, SelectedItemId = 2, Amount = 1/3 },
new
RowItem() { Display =
"Row4"
, IsChecked =
false
, SelectedItemId = 3, Amount = -1/3 },
},
ComboItemSource =
new
List<Item>()
{
new
Item() { Id = 1, Display =
"Item 1"
},
new
Item() { Id = 2, Display =
"Item 2"
},
new
Item() { Id = 3, Display =
"Item 3"
},
},
};
}
private
void
Button_Click(
object
sender, RoutedEventArgs e)
{
string
extension =
"xlsx"
;
SaveFileDialog dialog =
new
SaveFileDialog()
{
DefaultExt = extension,
Filter = String.Format(
"{1} files (*.{0})|*.{0}|All files (*.*)|*.*"
, extension,
"Excel Workbook"
),
FilterIndex = 1
};
if
(dialog.ShowDialog() ==
true
)
{
using
(Stream stream = dialog.OpenFile())
{
grid1.ExportToXlsx(stream,
new
GridViewDocumentExportOptions()
{
ShowColumnHeaders =
true
,
ShowColumnFooters =
true
,
ShowGroupFooters =
true
,
AutoFitColumnsWidth =
true
,
ExportDefaultStyles =
false
,
});
}
}
}
}
public
class
RowItem : INotifyPropertyChanged
{
private
string
_Display;
public
string
Display
{
get
{
return
_Display; }
set
{
this
._Display = value;
OnPropertyChanged(nameof(Display));
}
}
private
bool
_IsChecked;
public
bool
IsChecked
{
get
{
return
_IsChecked; }
set
{
this
._IsChecked = value;
OnPropertyChanged(nameof(IsChecked));
}
}
private
int
? _SelectedItemId;
public
int
? SelectedItemId
{
get
{
return
_SelectedItemId; }
set
{
this
._SelectedItemId = value;
OnPropertyChanged(nameof(SelectedItemId));
}
}
private
decimal
? _Amount;
public
decimal
? Amount
{
get
{
return
_Amount; }
set
{
this
._Amount = value;
OnPropertyChanged(nameof(Amount));
}
}
public
RowItem This
{
get
{
return
this
;
}
}
public
event
PropertyChangedEventHandler PropertyChanged;
private
void
OnPropertyChanged(
string
name)
{
if
(PropertyChanged !=
null
)
PropertyChanged(
this
,
new
PropertyChangedEventArgs(name));
}
}
public
class
Item : INotifyPropertyChanged
{
private
string
_Display;
public
string
Display
{
get
{
return
_Display; }
set
{
this
._Display = value;
OnPropertyChanged(nameof(Display));
}
}
private
int
? _Id;
public
int
? Id
{
get
{
return
_Id; }
set
{
this
._Id = value;
OnPropertyChanged(nameof(Id));
}
}
public
event
PropertyChangedEventHandler PropertyChanged;
private
void
OnPropertyChanged(
string
name)
{
if
(PropertyChanged !=
null
)
PropertyChanged(
this
,
new
PropertyChangedEventArgs(name));
}
}
Thanks