Hello,
i am trying to resize a radPane to fit its content when it's state changed to floating. I read in this forum that i should get the parent window and set the size of the parent toolwindow manually, but i cannot compile it:
According to the official API the method should be in the assembly i am using:
2012.3.1129.40 Telerik.Windows.Controls
2012.3.1129.40 Telerik.Windows.Controls.Data
2012.3.1129.40 Telerik.Controls.Docking
2012.3.1129.40 Telerik.Controls.Navigation
MainWindow.xaml
MainWindow.xaml.cs
CustomPane.cs
i am trying to resize a radPane to fit its content when it's state changed to floating. I read in this forum that i should get the parent window and set the size of the parent toolwindow manually, but i cannot compile it:
'TelerikRadPaneTest.CustomPane'
does not contain a definition
for
'GetParentToolWindow'
and no extension method
'GetParentToolWindow'
accepting a first argument of type
'TelerikRadPaneTest.CustomPane'
could be found (are you missing a
using
directive or an assembly reference?)
According to the official API the method should be in the assembly i am using:
2012.3.1129.40 Telerik.Windows.Controls
2012.3.1129.40 Telerik.Windows.Controls.Data
2012.3.1129.40 Telerik.Controls.Docking
2012.3.1129.40 Telerik.Controls.Navigation
MainWindow.xaml
<
Window
x:Class
=
"TelerikRadPaneTest.MainWindow"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
xmlns:c
=
"clr-namespace:TelerikRadPaneTest"
Title
=
"MainWindow"
Height
=
"350"
Width
=
"525"
>
<
DockPanel
>
<
telerik:RadDocking
PaneStateChange
=
"RadDocking_PaneStateChange_1"
telerik:AnimationManager.IsAnimationEnabled
=
"False"
HasDocumentHost
=
"False"
Margin
=
"0,50,0,0"
Grid.Row
=
"1"
Grid.Column
=
"0"
Grid.ColumnSpan
=
"2"
Grid.RowSpan
=
"2"
telerik:StyleManager.Theme
=
"Windows8"
BorderThickness
=
"0"
>
<
telerik:RadSplitContainer
telerik:ProportionalStackPanel.RelativeSize
=
"120, 200"
MinWidth
=
"450"
InitialPosition
=
"DockedLeft"
telerik:StyleManager.Theme
=
"Windows8"
>
<
telerik:RadPaneGroup
>
<
c:CustomPane
CanUserPin
=
"False"
CanUserClose
=
"False"
>
<
ScrollViewer
>
<
TextBlock
Text
=
"Very Long Scrollable Text"
/>
</
ScrollViewer
>
</
c:CustomPane
>
</
telerik:RadPaneGroup
>
</
telerik:RadSplitContainer
>
</
telerik:RadDocking
>
</
DockPanel
>
</
Window
>
MainWindow.xaml.cs
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.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
Telerik.Windows.Controls;
namespace
TelerikRadPaneTest
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public
partial
class
MainWindow : Window
{
public
MainWindow()
{
InitializeComponent();
}
private
void
RadDocking_PaneStateChange_1(
object
sender, Telerik.Windows.RadRoutedEventArgs e)
{
var radDock = sender
as
RadDocking;
if
(radDock.IsLayoutChanging)
{
var pane = e.OriginalSource
as
CustomPane;
if
(pane !=
null
)
{
var scrollviewer = pane.Content
as
ScrollViewer;
var view = scrollviewer.Content
as
TextBlock;
Size size =
new
Size(view.ActualWidth, view.ActualHeight);
Point loc = radDock.PointToScreen(
new
Point(0, 0));
//start, this won't compile
var win = pane.GetParentToolWindow();
//win.Width = size.Width;
//win.Height = size.Height;
//end
}
}
}
}
}
CustomPane.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Threading.Tasks;
using
Telerik.Windows.Controls;
namespace
TelerikRadPaneTest
{
public
class
CustomPane : RadPane
{
public
CustomPane()
:
base
()
{
base
.ContextMenuTemplate =
null
;
}
protected
override
void
OnMouseEnter(System.Windows.Input.MouseEventArgs e)
{
this
.ChangeVisualState(
true
);
}
protected
override
void
OnMouseUp(System.Windows.Input.MouseButtonEventArgs e)
{
base
.OnMouseUp(e);
if
(!
this
.IsPinned)
{
this
.IsPinned =
true
;
}
}
}
}