标签: wpftoolkit

没有CTRL或空格的WPF数据网格多重选择

WPF Datagrid有两种选择模式,Single或Extended.WPF ListView有第三个 - 多个.此模式允许您单击并选择多行而不按住CTRL或Shift.任何人都知道如何为datagrid做这个?

wpf selection wpftoolkit wpfdatagrid

8
推荐指数
3
解决办法
7455
查看次数

wpf toolkit折线图,没有点和不同的线条颜色

我有一些图表,我想动态添加没有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)

c# wpf charts wpftoolkit

8
推荐指数
1
解决办法
1万
查看次数

在WPFToolKit DataGrid中动画行消失

我已经下载了WPFToolkit,我正在使用此包中提供的DataGrid.当删除行时,我试图动画一行消失,但我不知道该怎么做.有谁知道怎么做?

wpf animation datagrid wpftoolkit

7
推荐指数
1
解决办法
1283
查看次数

嵌套的WPF DataGrids

我有一个DataGrid(来自工具包),我想在DataGrid.RowDetailsTemplate中嵌套另一个DataGrid.诀窍是我想从主网格中的一个表中恢复数据,然后根据行选择去获取另一个表中的附加细节,并在详细模板的DataGrid中显示它.

这很容易在2个单独的DataGrids中完成,但是我无法使用嵌套版本.

这甚至可能吗?如果是这样,有人会指出我正确的方向.我应该注意到我使用LinqToSql clases来填充数据.

谢谢你的考虑.-Joel

wpf xaml wpftoolkit

7
推荐指数
1
解决办法
5997
查看次数

如何将主题从Silverlight移植到WPF?

这很简单"!

我刚刚看到Rudi Grobler的这篇博客文章说,将主题从Silverlight移植到WPF是"容易的".不幸的是,他没有说怎么做.


下载并安装

我已从Codeplex 安装了WPF ToolkitSilverlight Toolkit.

我也去挖掘了我感兴趣的主题的源代码(BureauBlue)(警告,这需要一点时间加载),并将其粘贴到我的测试项目中的新资源字典文件中.


哦,破坏参考

很多蓝色波浪线.

alt text http://img32.imageshack.us/img32/6032/brokenreferences.jpg


这里没有参考

所以,我去添加引用并发现......它们没有列出.

alt text http://img35.imageshack.us/img35/7466/addreferencedialog.jpg


啊,他们在那里

幸运的是,我经过一番广泛的浏览后才能找到它们.

alt text http://img269.imageshack.us/img269/3830/addreferencedialogbrows.jpg


所以我添加了它们

找到缺失的引用后,我尝试添加它们.这实际上似乎解决了断开的xmlns链接(至少蓝色的波浪线消失了),但是当我构建我的项目时,我收到了一个错误:

错误1未知的生成错误,'无法解析对程序集的依赖关系'System.Windows,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e',因为它尚未预加载.使用ReflectionOnly API时,必须通过ReflectionOnlyAssemblyResolve事件按需预加载或加载相关的程序集.NmtConcept


所以我问......

如何在WPF中使Silverlight主题工作?


更新!

好吧,我以为我搞清楚了.我决定从这开始DataGrid.我弄清楚了Silverlight程序集的所有WPF等价物,我实际上已经完成了我的项目编译和运行.然后我看到了结果......

替代文字http://img44.imageshack.us/img44/2418/porteddatagrid.jpg

标题有点正确(除了丢失的排序箭头),但其余部分看起来像是一种涉及棕褐色砖块的可怕事故.

以下是Silverlight Toolkit网页上的示例.

替代文字http://img196.imageshack.us/img196/997/silverlightdatagrid.jpg

所以,我甚至没有接近.


我做了什么

请允许我解释一下我为达到这个烂摊子所做的工作.


DataGridFrozenGrid

首先,我必须DataGridFrozenGrid这个Silverlight Toolkit源代码页中获取,因为WPF从未听说过这样的类.


BureauBlue

然后,我将在关键件来自于BureauBlue的源代码(再次警告:这个孩子是加载缓慢).

通过关键件,我的意思是:

  1. 文件开头的所有画笔资源加上
  2. 在 …

silverlight wpf xaml wpftoolkit visual-studio

7
推荐指数
1
解决办法
8015
查看次数

Datagrid文本对齐方式

我想知道是否有人有一个简单的方法来使WPF数据网格中的文本居中对齐.我让数据网格工作得很好,但正确的文本对齐困扰了我.我搞砸了一些,并下载了wpftoolkit,但这些示例要么不起作用,要么给我一个编译错误.我确实将对wpftoolkit的引用添加到了我的项目中.任何帮助,将不胜感激.谢谢

数据网格的xaml如下

<WpfToolkit:DataGrid AutoGenerateColumns="True" Margin="15,15,10,65" Name="DG1" CanUserReorderColumns="False" />
Run Code Online (Sandbox Code Playgroud)

wpf datagrid wpftoolkit c#-4.0

7
推荐指数
1
解决办法
2万
查看次数

如何在C#代码中设置转换器绑定?

我是WPF的新手,现在我在我的项目中使用第三方lib xamChart

以前在XAML中我有一个Chart,它的轴有一个Unit,它是一个int属性,我有

Unit="{Binding NextStartRow, Converter={StaticResource UnitConverter}}"
Run Code Online (Sandbox Code Playgroud)

这非常有效,但现在我需要通过后面的代码在运行时创建图表.我怎么能在C#中做到这一点?和FYI所有的轴.在c#代码中的unx.xxx没有我想要的东西,请帮忙,非常感谢你,任何建议都非常感谢!

xaml的FYI代码段

<igCA:Axis AxisType="PrimaryX" AutoRange="True"  
           Unit="{Binding AnotherIntegerProperty, Converter={StaticResource UnitConverter}}">
Run Code Online (Sandbox Code Playgroud)

data-binding wpf wpftoolkit

7
推荐指数
1
解决办法
2万
查看次数

ContextMenu的MenuItem DataContext返回旧项

我在LongListSelector中使用ContextMenu,以便我可以删除绑定到LLS的列表中的一些项目.

我在这里遵循最近的指南以实现LLS(虽然我没有使用JumpList).我唯一改变的是让基组类扩展ObservableCollection而不是List.

我遇到的问题是,一旦我实现了ContextMenu并从那里删除,我可以从可见列表中的相同"位置"删除两次然后它会崩溃.调试显示在第二次删除后,MenuItem的Datacontext返回已删除的上一个项目.所以当我在列表中搜索它时,我得到的索引是-1.我可以抓住这个,但我不知道如何找出真正被选为项目的东西.

contextMenu的我的XAML部分如下:

<phone:LongListSelector.ItemTemplate>
    <DataTemplate>
        <Grid toolkit:TiltEffect.IsTiltEnabled="True">
            <toolkit:ContextMenuService.ContextMenu>
                <toolkit:ContextMenu  x:Name="conmen" Loaded="ContextMenu_Loaded">
                      <toolkit:MenuItem Header="Delete" Click="DeleteItem_Click"/>
                </toolkit:ContextMenu>
            </toolkit:ContextMenuService.ContextMenu>

             <Grid.ColumnDefinitions>
                 <ColumnDefinition Width="Auto"/>
                 <ColumnDefinition Width="*"/>
                 <ColumnDefinition Width="Auto"/>
             </Grid.ColumnDefinitions>

             <Border Grid.Column="0" Background="{StaticResource PhoneInverseBackgroundBrush}" Padding="{StaticResource PhoneTouchTargetOverhang}">
                 <TextBlock Text="{Binding Usr, StringFormat='x{0}'}" FontSize="32" HorizontalAlignment="Left" Width="48"/>
             </Border>

             <Border Grid.Column="1" Background="{StaticResource PhoneInverseBackgroundBrush}" Padding="{StaticResource PhoneTouchTargetOverhang}">
                 <TextBlock Text="{Binding Name}" FontSize="32" HorizontalAlignment="Left" />
             </Border>

             <Border Grid.Column="2" Background="{StaticResource PhoneInverseBackgroundBrush}" Padding="{StaticResource PhoneTouchTargetOverhang}">
                <TextBlock Text="{Binding Type, StringFormat=\{0:C\}}" FontSize="32" HorizontalAlignment="Right" />
             </Border>
        </Grid>
    </DataTemplate>
</phone:LongListSelector.ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

这是删除项目的delete_click函数的开始:

    private void DeleteItem_Click(object sender, RoutedEventArgs e)
    {            
        var …
Run Code Online (Sandbox Code Playgroud)

wpftoolkit windows-phone-8

7
推荐指数
1
解决办法
2374
查看次数

指定WPF图表的最小和最大轴

这是一个看似简单的问题,但我找不到简单的答案.我想在图表上指定现有Y轴的最小值和最大值.

这是图表:

<Window x:Class="TempDataAnalyzer.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" 
    xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
    Loaded="Window_Loaded">
<Grid>
     <chartingToolkit:Chart  Name="lineChart" Title="Temperature" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
        <chartingToolkit:LineSeries  DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding}" IsSelectionEnabled="True"/>
     </chartingToolkit:Chart>
</Grid>
Run Code Online (Sandbox Code Playgroud)

现在,我在Y轴上添加0到71之间的值:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        List<KeyValuePair<int, int>> entries = new List<KeyValuePair<int, int>>();
        entries.Add(new KeyValuePair<int, int>(0, 0));
        entries.Add(new KeyValuePair<int, int>(1, 23));
        entries.Add(new KeyValuePair<int, int>(2, 45));
        entries.Add(new KeyValuePair<int, int>(3, 46));
        entries.Add(new KeyValuePair<int, int>(4, 71));

        lineChart.DataContext = entries;
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,我希望图表Y轴显示0到100之间的范围,无论我添加什么值.这是为了使它与同一页面上的不同图表保持一致.

在此输入图像描述

.net c# wpf customization wpftoolkit

7
推荐指数
1
解决办法
8147
查看次数

在PropertyGrid控件中显示只读属性

我正在使用WPF扩展工具包来显示Team对象的属性.现在其中一个属性是人物集合.没问题,我得到一个很好的下拉,当我点击时,向我显示每个人的姓名和年龄.

在此输入图像描述

现在的问题是我实际上并不希望将我的Collection公开为public.但是,只要我将其setter设为私有,就会禁用该属性,以防止用户看到Person集合和人员详细信息:

在此输入图像描述

当它的setter是私有的时候我该如何显示我的Person Collection?我可以使用XAML模板执行此操作吗?如果是这样的话?我正在使用MVVM,因此我不想在代码中添加任何内容.

更新

好的,所以@tencntraze的解决方案让我大部分都在那里 - 谢谢.但是它对于对象的集合不起作用,这是我在我的情况下得到的.此外,它还可以简化为使用CollectionControlDialog而不是下面实现的自定义ReadOnlyCollectionViewer.

XAML

<UserControl x:Class="DevExpressTreeList.ReadOnlyCollectionEditor"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Name="MyUserControl"
             >
    <DockPanel>
        <Button Click="Button_OnClick" DockPanel.Dock="Right">
            <Label Content="?" Padding="2,0,2,0" />
        </Button>
        <Label Name="CollectionLabel" Content="(Collection)" Padding="2,2,2,0" />
    </DockPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

代码隐藏

public partial class ReadOnlyCollectionEditor : UserControl, ITypeEditor
{
    public ReadOnlyCollectionEditor()
    {
        InitializeComponent();
    }

    // Use typeof(object) to allow for any Collection<T>
    public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
        "Value", typeof(object), typeof(ReadOnlyCollectionEditor), new PropertyMetadata(default(object)));

    public object Value
    {
        // We are now using …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml mvvm wpftoolkit

7
推荐指数
1
解决办法
5720
查看次数