我正在使用WPF工具包的Calendar控件来允许用户选择日期.如果尚未选择日期,则SelectedDate绑定的属性为Null.这使日历默认为1月1日,AD.我想做点什么
SelectedDate="{Binding UserPickedDate, TargetNullValue=Today, Mode=TwoWay}"
Run Code Online (Sandbox Code Playgroud)
但是"今天"和"现在"都会引发绑定错误.我可以使用TargetNullValue将默认日期设置为今天或现在吗?
有没有人知道/有一个如何将WPF DataGrid布局更改为卡片视图或其他任何东西的示例,而不仅仅是堆栈行?
我刚从Codeplex WPF主题网站下载了很好的主题集合.我喜欢WhisterBlue和BureauBlue题材很多,但没有包含任何样式包含在新的控件WPF工具包(DataGrid,DatePicker,和Calendar).
似乎有人在那里必须扩展主题以涵盖这些控件,但我没有找到它们的运气.所以,如果你有任何线索,我很乐意听到他们.
我还要提一下,我一直在尝试将BureauBlue DataGrid主题的Silverlight版本移植到WPF(请参阅:如何将主题从Silverlight移植到WPF?),但到目前为止,这已经相当不成功.
我使用Microsoft的WPF工具包图表控件来编写自己的图表控件.我在这里写博客.我的图表控件将图表中的yaxs堆叠在一起.你可以在文章中看到这一切都很有效.现在我想创建一个控制图表中数据和轴的视图模型.到目前为止,我可以将轴添加到图表中并在图表中显示它们.但是当我尝试添加lineseries时我遇到了问题,因为它有一个DependentAxis和一个InDependentAxis属性.我不知道如何为它分配正确的xAxis和yAxis控件.
下面你看到LineSeriesViewModel的一部分.它具有嵌套的XAxisViewModel和YAxisViewModel属性.
public class LineSeriesViewModel : ViewModelBase, IChartComponent
{
XAxisViewModel _xAxis;
public XAxisViewModel XAxis
{
get { return _xAxis; }
set
{
_xAxis = value;
RaisePropertyChanged(() => XAxis);
}
}
//The YAxis Property look the same
}
Run Code Online (Sandbox Code Playgroud)
视图模型都有自己的datatemplate.xaml代码如下所示:
<UserControl.Resources>
<DataTemplate x:Key="xAxisTemplate" DataType="{x:Type l:YAxisViewModel}">
<chart:LinearAxis x:Name="yAxis" Orientation="Y" Location="Left" Minimum="0" Maximum="10" IsHitTestVisible="False" Width="50" />
</DataTemplate>
<DataTemplate x:Key="yAxisTemplate" DataType="{x:Type l:XAxisViewModel}">
<chart:LinearAxis x:Name="xAxis" Orientation="X" Location="Bottom" Minimum="0" Maximum="100" IsHitTestVisible="False" Height="50" />
</DataTemplate>
<DataTemplate DataType="{x:Type l:LineSeriesViewModel}">
<!--Binding doesn't work on the Dependent and IndependentAxis! …Run Code Online (Sandbox Code Playgroud) 我想将焦点放在数据网格的第一行.
这是我到目前为止:
Keyboard.Focus(ResultsGrid)
If result.Count > 0 Then
ResultsGrid.SelectedIndex = 0
End If
Run Code Online (Sandbox Code Playgroud)
这会将焦点设置为datagrid,而不是行本身.
我正在使用WPF Toolkit DataGrid和DataGridComboBoxColumn.一切都运行良好,除了在组合框中发生选择更改时,所选的值绑定源不会立即更新.仅当组合框失去焦点时才会发生这种情况.有没有人遇到过这个问题和任何建议解决方案?
这是该列的xaml:
<toolkit:DataGridComboBoxColumn Header="Column" SelectedValueBinding="{Binding Path=Params.ColumnName, UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="cName"
SelectedValuePath="cName">
<toolkit:DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding Info.Columns}" />
</Style>
</toolkit:DataGridComboBoxColumn.ElementStyle>
<toolkit:DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding Info.Columns}" />
</Style>
</toolkit:DataGridComboBoxColumn.EditingElementStyle>
</toolkit:DataGridComboBoxColumn>
Run Code Online (Sandbox Code Playgroud) 创建新图表并添加系列(例如ColumnSeries)以及数据时,列将呈现为一种FadeIn动画,并在屏幕上绘制图表后立即显示.
反正有没有阻止这个动画发生?或者,无论如何强制图表在渲染之前完成动画?
保罗
我在WPF中使用DataGrid并希望它缩小到只适合其列的宽度.它很适合初始渲染.当我调整列的大小以使其更宽时,网格也会增长.但是如果我调整列的大小以使其再次变窄,我会在列的右侧获得空白区域(我可以看到列标题灰色区域扩展到列之外.
我想让数据网格用列缩小它的宽度,这样我就不会得到右侧的空白区域.我试图调试代码,据我所知,问题出在DataGridCellsPanel中,但我看不到任何地方可以修复宽度测量.
任何帮助,将不胜感激.
我正在使用WPF扩展工具包向导。
我想知道如何在允许用户向前导航之前验证所有控件是否已在页面上填写
我知道我可以捕获“下一步”按钮,然后单击我的代码
private void Wizard_Next(object sender, Xceed.Wpf.Toolkit.Core.CancelRoutedEventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以根据发件人检测到向导所在的页面,但是如何获取该向导页面上的控件的句柄?
我在一个项目中使用AvalonDock并希望使用Anchorable Pane,但是我希望它不会出现在底部,而是像文档窗格一样出现在顶部.对于我的项目,文档窗格不是适当的控件,所以我需要找到一种方法来使Anchorable Pane以相同的方式出现.

wpftoolkit ×10
wpf ×9
c# ×2
datagrid ×2
styles ×2
wpf-controls ×2
wpfdatagrid ×2
xaml ×2
avalondock ×1
calendar ×1
combobox ×1
data-binding ×1
datatemplate ×1
placement ×1
tabs ×1