我有一个包含3列的WPF Toolkit DataGrid.只有第三列允许数据输入 - 前两个是静态的(文本描述).是否可以控制标签和导航,使标签和上下左右按钮忽略前两列,并在第三列的范围内操作?
我有一个手风琴,其内容的高度可以动态调整大小.我想看到Accordion动态响应子项的高度,但我在这方面遇到了麻烦.
<lt:Accordion Name="MyAccordion"
SelectionMode="ZeroOrOne"
HorizontalAlignment="Stretch">
<lt:AccordionItem Name="MyAccordionItem"
Header="MyAccordion"
IsSelected="True"
HorizontalContentAlignment="Stretch"
VerticalAlignment="Stretch">
<StackPanel>
<Button Content="Grow" Click="Grow"/>
<Button Content="Shrink" Click="Shrink"/>
<TextBox Name="GrowTextBox"
Text="GrowTextBox"
Height="400"
Background="Green"
SizeChanged="GrowTextBox_SizeChanged"/>
</StackPanel>
</lt:AccordionItem>
</lt:Accordion>
private void Grow(object sender, System.Windows.RoutedEventArgs e)
{
GrowTextBox.Height += 100;
}
private void Shrink(object sender, System.Windows.RoutedEventArgs e)
{
GrowTextBox.Height -= 100;
}
private void GrowTextBox_SizeChanged(object sender, System.Windows.SizeChangedEventArgs e)
{
MyAccordion.UpdateLayout();
MyAccordionItem.UpdateLayout();
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果我崩溃然后重新打开手风琴,它就会按照我想要的方式成型,但我希望在孩子调整大小时立即调整大小.
我试图通过添加一个在Accordion和AccordionItem上调用UpdateLayout()的SizeChanged事件处理程序来解决这个问题,但这没有任何视觉效果.我无法弄清楚在Accordion控件内进行适当调整的位置.有没有人有想法?
我正在使用2010年2月发布的WPF Toolkit的Chart控件.该图表占用了相对于绘图区域的大量空间.
如何控制绘图区域和图表标题周围的边距.这样,我可以在网格中排列我需要的10个图表,而不必在屏幕上使用这么多空间.
谢谢,
精灵.
我ListView很清楚,但从未看过DataGrid.
我的问题很简单 - 如果你不需要在列表中进行编辑,确实DataGrid提供了比较的任何好处ListView吗?此外,还有使用的缺点DataGrid(更复杂,性能,错误,难以风格等)?
WPF Datagrid有两种选择模式,Single或Extended.WPF ListView有第三个 - 多个.此模式允许您单击并选择多行而不按住CTRL或Shift.任何人都知道如何为datagrid做这个?
我绑定DataTable到DataGrid(WPF工具包)进行添加,编辑和删除.我可以使用Tab键从上到下浏览单元格.但是,只要我在最后一行的最后一列上按Tab键,它就不会将光标移动到新行的第一个单元格.我怎样才能做到这一点?
谢谢
我正在尝试使DataGridTemplateColumn的行为与TextColumn完全相同
完成了第一个; 但是选择所有文本都不起作用.正如许多帖子所提到的,尝试挂钩到GotFocus事件并选择代码隐藏中的所有文本.这适用于独立的文本框; 但是对于作为TemplateColumn的编辑控件的文本框,这不起作用.
有任何想法吗?代码示例:
<Window.Resources>
<Style x:Key="HighlightTextBoxStyle" TargetType="{x:Type TextBox}">
<EventSetter Event="GotFocus" Handler="SelectAllText"/>
<EventSetter Event="GotMouseCapture" Handler="SelectAllText"/>
<Setter Property="Background" Value="AliceBlue"/>
</Style>
<DataTemplate x:Key="DefaultTitleTemplate">
<TextBlock Text="{Binding Title}"/>
</DataTemplate>
<DataTemplate x:Key="EditTitleTemplate">
<TextBox x:Name="Fox"
FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}"
Text="{Binding Path=Title, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Style="{StaticResource HighlightTextBoxStyle}">
</TextBox>
</DataTemplate>
</Window.Resources>
<DockPanel>
<TextBox DockPanel.Dock="Top" x:Name="Test" Text="{Binding Path=(FocusManager.FocusedElement).Name, ElementName=MyWindow}"
Style="{StaticResource HighlightTextBoxStyle}"/>
<toolkit:DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
<toolkit:DataGrid.Columns>
<toolkit:DataGridTemplateColumn Header="Templated Title"
CellTemplate="{StaticResource DefaultTitleTemplate}"
CellEditingTemplate="{StaticResource EditTitleTemplate}" />
<toolkit:DataGridTextColumn Header="Title" Binding="{Binding Path=Title}" />
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
</DockPanel>
Run Code Online (Sandbox Code Playgroud) 我有一个WPF数据网格(从标题指示的WPF工具包),我想要一些列之间的差距,甚至没有标题在上面,你可以看到之间的背景.我不知道如何管理这个.
顺便说一句,我的所有列都是TemplateColumns,但我更喜欢一个解决方案,我不需要为每一列设置样式,而且它的标题在一侧有一个gab.也许是类似的东西<DataGridGapColum Width="5" />,不幸的是,这样的事情并不存在.
我有一个WPF TabControl,有一些TabItems.我想要TabItems组左侧和右侧的边距,如果这是有道理的.
我将在下面绘制一些ASCII艺术来说明问题.我想在第一个标签的左边有一个固定的边距,但我还想在标签三的右边有一个固定的边距.
|--------------------------------------------------|
| |-----||-----||-----| |
| <-Margin-> | 1 || 2 || 3 | <-Margin-> |
|------------| ||-----||-----|-----------------|
| |
| How do I get margin or padding on both |
| sides of my tabs? |
| |
| |
|--------------------------------------------------|
Run Code Online (Sandbox Code Playgroud)
选项卡的数量是不受限制的,因此它们会在添加更多内容时堆叠.它需要正确地工作.
另外,请注意,我不想让整个标签控件变小.只是tabitem标签或标题或它们是什么.
我发现如果我将标签设置为具有"60,0,-60,0"之类的边距,我会在标签的左侧获得所需的效果,但这看起来像是黑客,并且不起作用对于右手边.
我在VS 2010中使用WPF 4.0.
干杯!
我有一些图表,我想动态添加没有DataPoints的LineSeries,只是添加一些自定义颜色的行.我发现隐藏数据点的唯一方法是:
Style style = new Style(typeof(LineDataPoint));
style.Setters.Add(new Setter(LineDataPoint.TemplateProperty, null));
var series = new LineSeries()
{
Title = name,
DependentValuePath = "Y",
IndependentValuePath = "X",
ItemsSource = new ObservableCollection<FloatingPoint>(),
DataPointStyle = style,
};
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我这样做时,所有线条变黄,我无法改变颜色.我试着这样做:
Style style = new Style(typeof(LineDataPoint));
style.Setters.Add(new Setter(LineDataPoint.TemplateProperty, null));
SolidColorBrush brush = new SolidColorBrush(Colors.Red);
var series = new LineSeries()
{
Title = name,
DependentValuePath = "Y",
IndependentValuePath = "X",
ItemsSource = new ObservableCollection<FloatingPoint>(),
DataPointStyle = style,
Background = brush,
};
Run Code Online (Sandbox Code Playgroud)
但它没有帮助 - 我无法改变线条颜色......即使我写
series.Background = brush;
Run Code Online (Sandbox Code Playgroud) wpf ×10
wpftoolkit ×10
datagrid ×5
wpfdatagrid ×4
.net ×2
charts ×2
.net-3.5 ×1
accordion ×1
c# ×1
focus ×1
listview ×1
selection ×1
wpf-4.0 ×1
wpf-controls ×1