Hi,
I'm running into some problems applying new style & template settings to AutoCompleteBox.
I've read this article: https://docs.telerik.com/devtools/wpf/styling-and-appearance/styling-apperance-editing-control-templates,and I've created a simple default Telerik application that has only an AutoCompleteBox defined:
<Window x:Class="TelerikWpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
Title="MainWindow" Height="350" Width="525">
<Grid>
<telerik:RadAutoCompleteBox />
</Grid>
</Window>
If I use VS to generate a copy of the required template (i.e. right-click the RadAutoCompleteBox, Edit Template ->Edit a Copy..., etc., I get this error message:
InvalidCastException: [A]Telerik.Windows.Controls.RadListBox cannot be cast to [B]Telerik.Windows.Controls.RadListBox. Type A originates from 'Telerik.Windows.Controls, Version=2019.2.618.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7' in the context 'LoadNeither' at location 'C:\Users\WWill\AppData\Local\Microsoft\VisualStudio\16.0_789bb273\Designer\ShadowCache\gmfvgqnw.h3w\4sct5rze.jm2\Telerik.Windows.Controls.dll'. Type B originates from 'Telerik.Windows.Controls, Version=2019.2.618.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7' in the context 'LoadFrom' at location 'C:\Program Files (x86)\Progress\Telerik UI for WPF R2 2019\Binaries\WPFRadF45\Telerik.Windows.Controls.dll'.
If, instead, I open the Telerik.Windows.Controls.Input.xaml file and copy the relevant RadAutoCompleteBox styles/templates into a resource dictionary in my application, I find a great many dependencies on other definitions in that file, which triggers a lot of "not found" reference errors.
So, I copied the entire ResourceDictionary from that file into my test app. Not too happy about copying 7,500 lines of code anywhere, but, hey, I'll try anything once. Unfortunately, I'm still getting errors, this time 28 of them in the form:
Severity Code Description Project File Line Suppression State
Error XDG0044 The local property "Columns" can only be applied to types that are derived from "RadUniformGrid". TelerikWpfApp1 App.xaml 5334
As these did not stop me from building/running my app, I proceeded to modify my RadAutoCompleteBox definition as follows:
<telerik:RadAutoCompleteBox TextBoxStyle="{DynamicResource RadAutoCompleteTextBoxStyle}"/>
This resulted in the following message:
InvalidOperationException: 'RadWatermarkTextBox' TargetType does not match type of element 'RadWatermarkTextBox'.
Again, this error doesn't stop me from compiling/running the app, but I thought I'd mention it in case it's an indicator
Finally, despite all the aforementioned errors, I am able to tweak the appearance of my RadAutoCompleteBox control, but I'm not feeling too good about it, as it seems like a very inelegant way to achieve a few visual tweaks.
Any advice for a newbie?
Wayne
Hi!
I couldn't find any information about selecting which camera I want to use in RadWebCam. Any sample? Or is it not possible?
Also there should be a way to save and load the settings of a camera.Any hints?
Thanks
Why is performance so good for this control? I'm loading 23,000 search items into an ObservableCollection, and search response is almost instantaneous.
This may seem like an odd question, but in preparing to work with this control, I found a few online complaints about performance and a suggestion to trigger virtualization by setting the MaxHeight property of the inner ListBox, as follows:
<Style x:Key="AutoCompleteBoxStyle" TargetType="{x:Type toolkit:AutoCompleteBox}">
<Style.Resources>
<Style TargetType="{x:Type ListBox}">
<Setter Property="MaxHeight" Value="200" />
</Style>
</Style.Resources>
</Style>
I found that this wasn't necessary, and as I hate mysteries, I'm wondering if Telerik has taken care of all performance issues (say by automatically triggering virtualization) since the time of the complaints.
If this isn't the case, and I can expect to run into performance problems with a larger number of search items, are there any standard techniques to address such eventual problems?
Wayne
Hello,
I'm trying to exclude some (but not all) RadGridView columns' information from being persisted using PersistenceManager.
For example, in the below grid, how would I exclude column Info's properties from being persisted based on the column's Header name (assume I've defined CustomPropertyProvider for the grid to persist properties like Width, Header, etc.)?
<telerik:RadGridView x:Name="TestGrid"
telerik:PersistenceManager.StorageId="TestGrid"
AutoGenerateColumns="False">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="Info" DataMemberBinding="{Binding Info}"/>
<telerik:GridViewDataColumn Header="Data" DataMemberBinding="{Binding Data}"/>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
I could use SerializationOptions but I'm not sure what I'd put in the "Expression" field to exclude column "Info" (see below):
<telerik:PersistenceManager.SerializationOptions>
<telerik:SerializationMetadataCollection>
<telerik:PropertyNameMetadata Condition="Except" Expression="??" SearchType="PropertyName" />
</telerik:SerializationMetadataCollection>
</telerik:PersistenceManager.SerializationOptions>
I have a radcombobox with AllowMultipleSelection set to true.
When loading a window I want to set the selected items in that combo box from values obtained from a database. But I can't seem to see how the values can be set if I set the ItemsSource to a string[]
As an example
string[] items = new string[] {"1", "2" "3", "4"};
OptionCombo.ItemsSource = items;
Then I want to set "2" and "4" to selected.
Thanks
From the picture below you can see that the percent sign is cropped. but it isn't on the rest
ClipToPlotArea="False"
Also how to achieve the chart in the second image. (The age pyramide with the age in the middle)
Thanks
Hi,
The rotation property of the page object causes me problems.
I want to rotate a specific page in the RadFixedDocument, so i index the right page and rotate it 90 degree and after that i call OnPropertyChanged to update the PdfDocument property.
But when the page was rotated(in the debug mode the value has been changed) the radpdfviewer doesn't display the rotation.
Where could the error be located?
Many thanks in advance for youre suggestions.
MainWindow.xaml.cs:
01.
using
System;
02.
using
System.IO;
03.
using
System.Linq;
04.
using
System.Windows;
05.
using
System.Windows.Input;
06.
using
Telerik.Windows.Documents.Fixed;
07.
using
Telerik.Windows.Documents.Fixed.FormatProviders;
08.
using
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
09.
using
Telerik.Windows.Documents.Fixed.Model;
10.
using
Telerik.Windows.Documents.UI;
11.
using
Rotation = Telerik.Windows.Documents.Fixed.Model.Data.Rotation;
12.
13.
namespace
TelerikWpfApp1
14.
{
15.
/// <summary>
16.
/// Interaction logic for MainWindow.xaml
17.
/// </summary>
18.
public
partial
class
MainWindow : Window
19.
{
20.
private
PdfViewModel _pdfViewModel;
21.
public
MainWindow()
22.
{
23.
InitializeComponent();
24.
_pdfViewModel =
new
PdfViewModel();
25.
DataContext = _pdfViewModel;
26.
}
27.
28.
private
void
RotateSpecificPage(
object
sender, RoutedEventArgs e)
29.
{
30.
_pdfViewModel.RotateSpecificPage();
31.
}
32.
33.
private
void
DeleteSpecificPage(
object
sender, RoutedEventArgs e)
34.
{
35.
_pdfViewModel.DeleteSpecificPage();
36.
}
37.
}
38.
}
MainWindow.xaml:
01.
<
Window
03.
xmlns:x
=
"http://schemas.microsoft.com/winfx/2006/xaml"
04.
xmlns:d
=
"http://schemas.microsoft.com/expression/blend/2008"
05.
xmlns:mc
=
"http://schemas.openxmlformats.org/markup-compatibility/2006"
06.
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
07.
xmlns:converters
=
"clr-namespace:Telerik.Windows.Documents.Converters;assembly=Telerik.Windows.Controls.FixedDocumentViewers"
08.
xmlns:telerikWpfApp1
=
"clr-namespace:TelerikWpfApp1"
09.
mc:Ignorable
=
"d"
10.
x:Class
=
"TelerikWpfApp1.MainWindow"
11.
Title
=
"MainWindow"
Height
=
"Auto"
Width
=
"Auto"
>
12.
<
Grid
>
13.
<
Grid
>
14.
<
Grid.RowDefinitions
>
15.
<
RowDefinition
Height
=
"Auto"
/>
16.
<
RowDefinition
Height
=
"Auto"
/>
17.
<
RowDefinition
Height
=
"*"
/>
18.
</
Grid.RowDefinitions
>
19.
<
Button
Grid.Row
=
"0"
Click
=
"RotateSpecificPage"
>RotatePage</
Button
>
20.
<
Button
Grid.Row
=
"1"
Click
=
"DeleteSpecificPage"
>DeletePage</
Button
>
21.
<
telerik:RadPdfViewer
Grid.Row
=
"2"
x:Name
=
"PdfViewer"
Document
=
"{Binding Path=PdfDocument, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"
/>
22.
</
Grid
>
23.
</
Grid
>
24.
</
Window
>
PdfViewModel.cs:
01.
using
System;
02.
using
System.Collections.Generic;
03.
using
System.ComponentModel;
04.
using
System.IO;
05.
using
System.Linq;
06.
using
System.Runtime.CompilerServices;
07.
using
System.Text;
08.
using
System.Threading.Tasks;
09.
using
System.Windows;
10.
using
System.Windows.Input;
11.
using
Telerik.Windows.Documents.Fixed.FormatProviders;
12.
using
Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
13.
using
Telerik.Windows.Documents.Fixed.Model;
14.
using
Telerik.Windows.Documents.Fixed.Model.Data;
15.
using
TelerikWpfApp1.Annotations;
16.
17.
namespace
TelerikWpfApp1
18.
{
19.
public
class
PdfViewModel : INotifyPropertyChanged
20.
{
21.
private
string
_path = @
"test.pdf"
;
22.
private
RadFixedDocument _pdfDocument;
23.
private
const
int
PageNumber = 0;
24.
25.
public
PdfViewModel()
26.
{
27.
PdfDocument = ReadPdf(_pathOne);
28.
}
29.
public
RadFixedDocument PdfDocument
30.
{
31.
get
=> _pdfDocument;
32.
set
33.
{
34.
if
(!Equals(value,
null
))
35.
{
36.
_pdfDocument = value;
37.
OnPropertyChanged();
38.
}
39.
}
40.
}
41.
42.
private
RadFixedDocument ReadPdf(
string
path)
43.
{
44.
using
(var stream = File.OpenRead(path))
45.
{
46.
return
new
PdfFormatProvider(stream, FormatProviderSettings.ReadAllAtOnce).Import();
47.
}
48.
}
49.
50.
public
void
RotateSpecificPage()
51.
{
52.
Console.WriteLine(@
"Page has been rotated"
);
53.
if
(!Equals(PdfDocument,
null
))
54.
{
55.
PdfDocument.Pages[PageNumber].Rotation = Rotation.Rotate90;
56.
OnPropertyChanged(nameof(PdfDocument));
57.
}
58.
}
59.
60.
public
void
DeleteSpecificPage()
61.
{
62.
Console.WriteLine(@
"Page has been deleted"
);
63.
if
(!Equals(PdfDocument,
null
) && PdfDocument.Pages.Count > 1)
64.
{
65.
PdfDocument.Pages.RemoveAt(PageNumber);
66.
OnPropertyChanged(nameof(PdfDocument));
67.
}
68.
}
69.
70.
public
event
PropertyChangedEventHandler PropertyChanged;
71.
72.
[NotifyPropertyChangedInvocator]
73.
protected
virtual
void
OnPropertyChanged([CallerMemberName]
string
propertyName =
null
)
74.
{
75.
PropertyChanged?.Invoke(
this
,
new
PropertyChangedEventArgs(propertyName));
76.
}
77.
}
78.
}