Gridsplitter的问题

neilyoung 2012-04-25 11:23:43
silverlight版本无问题,wpf版本出现非法操作异常--无法设置对象“System.Windows.Media.TransformGroup”上的属性,因为它处于只读状态。

抛出异常的代码部分在

protected virtual void OnCollapseModeChanged(GridSplitterCollapseMode collapseMode)
{
...
if (collapseMode == GridSplitterCollapseMode.Previous)
{
if (_elementHorizontalGridSplitterButton != null)
{
_elementHorizontalGridSplitterButton.RenderTransform.SetValue(ScaleTransform.ScaleYProperty, -1.0);
}
if (_elementVerticalGridSplitterButton != null)
{
_elementVerticalGridSplitterButton.RenderTransform.SetValue(ScaleTransform.ScaleXProperty, -1.0);
}
}
else if (collapseMode == GridSplitterCollapseMode.Next)
{
if (_elementHorizontalGridSplitterButton != null)
{
_elementHorizontalGridSplitterButton.RenderTransform.SetValue(ScaleTransform.ScaleYProperty, 1.0);
}
if (_elementVerticalGridSplitterButton != null)
{
_elementVerticalGridSplitterButton.RenderTransform.SetValue(ScaleTransform.ScaleXProperty, 1.0);
}
}
}


mainwindow.XAML 部分代码:

<controls:ExtendedGridSplitter Grid.Column="1"
VerticalAlignment="Stretch"
HorizontalAlignment="Center"
Width="10"
CollapseMode="Previous"
Background="LightBlue" />



控件模板xaml

<!-- Horizontal Template -->
<Grid x:Name="HorizontalTemplate"
Visibility="Collapsed">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- Horizontal GridSplitter Handle -->
<ToggleButton x:Name="HorizontalGridSplitterHandle"
Grid.Column="1"
IsHitTestVisible="True"
Style="{TemplateBinding HorizontalHandleStyle}"
RenderTransformOrigin="0.5,0.5">
<ToggleButton.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleY="1" />
</TransformGroup>
</ToggleButton.RenderTransform>

</ToggleButton>
</Grid>
...全文
270 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
neilyoung 2012-04-27
  • 打赏
  • 举报
回复
人气呢? 哪位帮助下我这个菜鸟吧
neilyoung 2012-04-25
  • 打赏
  • 举报
回复
Button.RenderTransform.SetValue(ScaleTransform.ScaleYProperty, -1.0); 抛出异常: 无法设置对象“System.Windows.Media.ScaleTransform”上的属性,因为它处于只读状态。。。
neilyoung 2012-04-25
  • 打赏
  • 举报
回复
代码可以在此下载:http://115.com/file/bevbrfnp#gridSplitter-silverlight-wpf.rar

开发环境:vs2010, .net framework 4

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧