Canvas 设置滚动条

在路上20130607 2011-05-13 09:25:45
做了一个Canvas 需要在里面动态添加控件 StackPanel,可是添加后,发现 Canvas 没有滚动条 ,页面也不出现滚动条,麻烦各位帮忙看下。
页面代码如下

<Canvas Loaded="StartTimer" x:Name="myCanvas" Background="Black" Height="500" Width=" 500" Margin="142,104,569,184">

</Canvas>


后台代码

myCanvas.Children.Clear();
for (int j = 0; j < row; j++)//行
{
for (int i = 0; i < col; i++)//列
{
StackPanel myPanel = new StackPanel();
myPanel.Name = Guid.NewGuid().ToString();
myPanel.Height = 100;
myPanel.Width = 100;
double left = 100 * i +i;
double top = 100 * j+j ;
myPanel.SetValue(Canvas.LeftProperty, left);
myPanel.SetValue(Canvas.TopProperty, top);
myPanel.Background = new SolidColorBrush(Colors.Red);

myCanvas.Children.Add(myPanel);
}
}
...全文
1245 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
◆圣代/ 要方便去 。net 下吧 来点分
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
这滚动条太强大了吧 还得自己写事件才能让别的一起动?
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
怎么改才能让动画去掉呢


doubleanimation.From = Canvas.GetTop(ScrollView);
////终点在移动时确定到目标位置路程的一半 即(e.NewValue - e.OldValue)
double d1 = -1 * (this.ScrollView.ActualHeight - this.LayoutRoot.ActualHeight) * e.NewValue;
doubleanimation.To = (-1 * (this.ScrollView.ActualHeight - this.LayoutRoot.ActualHeight) * e.NewValue + doubleanimation.From) / 2;

// 慢动画设置终点
key1.Value = d1;
ScrollBoard.Pause();
ScrollBoard.Begin();
a184485789 2011-05-13
  • 打赏
  • 举报
回复
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
太小白了 事件在哪里都找不到 我再找找哈
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 a184485789 的回复:]

可以 你把Scroll事件里面的代码改改吧
[/Quote]
恩 我试试 刚接触 谢谢啦
a184485789 2011-05-13
  • 打赏
  • 举报
回复
可以 你把Scroll事件里面的代码改改吧
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
那个动画 能去掉吗?就是拉滚动条的动画
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 a184485789 的回复:]

留个邮箱 给你个DEMO
[/Quote]
luosaiming@yahoo.cn
谢谢了
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
luosaiming@yahoo.cn
a184485789 2011-05-13
  • 打赏
  • 举报
回复
留个邮箱 给你个DEMO
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
4楼的方法 好像不行吧 我把
StackPanel myPanel = new StackPanel();

myPanel 添加 在 ScrollView 或者 myCanvas都不行
滚动条出了 但是不对吧 才几个 就出滚动条了
子夜__ 2011-05-13
  • 打赏
  • 举报
回复
文章两篇
参考
参考
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
我试试哈
a184485789 2011-05-13
  • 打赏
  • 举报
回复
先隐藏掉超出部分,再在Canvas外面添加滚动条与滚动条事件,在滚动条事件里面设置StackPanel的Canvas.Left和Canvas.Right

<Canvas Grid.Column="1" Margin="8">
<StackPanel Name="ScrollView" ScrollViewer.VerticalScrollBarVisibility="Auto">
</StackPanel>
</Canvas>
<ScrollBar Grid.Column="2" Width="10" HorizontalAlignment="Right"
Margin="8,0,2,0" d:LayoutOverrides="Width" Background="#FF2B99BE"
Foreground="#FF2B99BE" Orientation="Vertical" Name="Scorller" Cursor="Hand" BorderThickness="0" LargeChange="1" Height="Auto">
</ScrollBar>
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 a184485789 的回复:]

Canvas超出部分不会出现滚动条,可以先超出部分隐藏,再手动添加滚动条
<ScrollBar></ScrollBar>
[/Quote]

超出的部分不隐藏能让滚动条出来吗?

手动添加滚动条<ScrollBar></ScrollBar> 怎么写呢?
a184485789 2011-05-13
  • 打赏
  • 举报
回复
Canvas超出部分不会出现滚动条,可以先超出部分隐藏,再手动添加滚动条
<ScrollBar></ScrollBar>
在路上20130607 2011-05-13
  • 打赏
  • 举报
回复
在asp.net 开了一贴

能解决问题 唯有送分表示感谢
进入。net

8,734

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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