我正在尝试在必要时使WPF DataGrid显示滚动条.您可以在下面看到我的用户控件的基本XAML代码:
<Grid x:Name="Data" Grid.Column="0" VerticalAlignment="Stretch" Height="Auto" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Expander Header="Route Setup" Grid.Row="0" VerticalAlignment="Top" Background="White">
</Expander>
<Expander Header="Select Locations" Grid.Row="1" VerticalAlignment="Top" Background="White">
</Expander>
<DataGrid Grid.Row="2" ItemsSource="{Binding Locations, Mode=TwoWay}" Height="Auto" AutoGenerateColumns="False" ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto">
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
这不起作用,当DataGrid超出可用空间时,我看不到任何scroolbars.我已经尝试在我的DataGrid周围使用滚动视图,但这并没有改变任何东西.
知道usercontrol加载到LeftRegion具有以下标记的shell中可能很重要:
<Grid x:Name="LayoutRoot">
<Grid.ColumnDefinitions >
<ColumnDefinition Width="*" MinWidth="400" MaxWidth="600"/>
<ColumnDefinition Width="9" />
<ColumnDefinition Width="*" MinWidth="300" />
</Grid.ColumnDefinitions>
<GridSplitter x:Name="MainSplitter" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Grid.Column="1"
Margin="0" Width="9" Style="{DynamicResource gridSplitterVerticalStyle}"/>
<ItemsControl Name="LeftRegion" Grid.Column="0" Background="Azure" Height="Auto" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch" cal:RegionManager.RegionName="LeftRegion">
<ItemsControl.ItemsPanel> …Run Code Online (Sandbox Code Playgroud) 我在.csproj文件中定义了以下内联任务,该文件应运行BeforeBuild.
<UsingTask TaskName="VersioningTask" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<FileName ParameterType="System.String" Required="true" />
<XmlFileName ParameterType="System.String" Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.Xml.dll" />
<Reference Include="System.Xml.Linq.dll"/>
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Linq" />
<Using Namespace="System.Text" />
<Using Namespace="System.Text.RegularExpressions" />
<Using Namespace="System.Xml.Linq" />
<Code Type="Fragment" Language="cs"><![CDATA[
var xDoc = XDocument.Load(XmlFileName);
//...
Run Code Online (Sandbox Code Playgroud)
从VS2012构建项目时,我收到以下错误:
找不到引用"System.Xml.dll".如果您的代码需要此引用,则可能会出现编译错误.
找不到引用"System.Xml.Linq.dll".如果您的代码需要此引用,则可能会出现编译错误.
如果我删除XML内容和两个引用,则构建成功.我试图使用DLL的完整路径(%windir%/ assembly)而没有任何成功.
这里有任何错误的想法都受到高度赞赏.
我在开源项目中找到了以下方法:
static IEnumerable<T> Cat<T>(T t) {
yield return t;
}
Run Code Online (Sandbox Code Playgroud)
据我所知,除了返回一个IEnumerable<T>包含之外别无其他t.如果我是对的并且它是虚拟的,例如return new List<T>{t};,yield return在这里使用的目的/优势是什么?如果我错了,我会错过什么?
我无法在VB.NET中显示unicode字符.
我在C#中这样做:string myString ="\ u03A3"; //大写西格玛(总和)
但它在VB中不起作用,我无法找到使其工作的方法.
c# ×2
.net ×1
datagrid ×1
msbuild ×1
msbuild-4.0 ×1
msbuild-task ×1
scrollbar ×1
unicode ×1
vb.net ×1
wpf ×1
xaml ×1
yield ×1
yield-return ×1