首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# wpf 滚动条有关问题

2013-11-16 
c# wpf 滚动条问题我在grid上创建100个控件,现在初始化时只能显示一部分,但现在滚动条是灰的,不可用。我想

c# wpf 滚动条问题
我在grid上创建100个控件,现在初始化时只能显示一部分,但现在滚动条是灰的,不可用。
我想拖动滚动条,让100个控件可以滚动显示,如何修改?

这是xml:
<Window x:Class="WpfApplication5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <ScrollViewer HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Disabled"  Grid.Row="0" Grid.Column="0">
    <Grid Name="gridMain">
            <Button Content="Button" HorizontalAlignment="Left" Margin="183,89,0,0" VerticalAlignment="Top" Width="238" Height="48"/>
        </Grid>
        </ScrollViewer>
</Window>
这是程序:

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;

namespace WpfApplication5
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            for (int i = 0; i < 5; i++)
            {
                for (int j = 0; j < 20; j++)
                {
                    Image image1 = new Image();
                    BitmapImage myBitmapImage = new BitmapImage();
                    myBitmapImage.BeginInit();
                    myBitmapImage.UriSource = new Uri(@"E:\DemoProduct\csharp\asag\asag\立筒-图标.ico");
                    myBitmapImage.DecodePixelWidth = 100;
                    myBitmapImage.EndInit();
                    image1.Source = myBitmapImage;


                    image1.Width = 50;
                    image1.Height = 50;
                    Thickness marginThickness = new Thickness();

                    marginThickness.Right = gridMain.ActualWidth - 50 - j * 100;
                    marginThickness.Bottom = gridMain.ActualHeight - 150 - i * 120;

                    image1.Margin = marginThickness;
                    gridMain.Children.Add(image1);
                }
            }
        }
    }
}
滚动条?c#


[解决办法]
grid上没有滚动条是否显示的属性?
我觉得有,找找看
[解决办法]
没滚动条是因为Grid没设置高度!
[解决办法]
marginThickness.Right = gridMain.ActualWidth - 50 - j * 100;
marginThickness.Bottom = gridMain.ActualHeight - 150 - i * 120;

上面你的代码把Right和Bottom都设置成了负数,就样其实就是隐藏起来了。滚动条就不会出现。
你把减号都换成加号,这样相对位置才是正的,当不能完全显示的时候,滚动条就会出现。

热点排行