小编akj*_*shi的帖子

调整WPF中DataGrid的标头大小

我应该在WPF中进行一些我不熟悉的小图形更改.xaml中有这个代码

<DataGrid x:Name="dtGridReads"  AutoGenerateColumns="False" 
        VirtualizingStackPanel.IsVirtualizing="True"                                       
        VirtualizingStackPanel.VirtualizationMode ="Standard"
          EnableColumnVirtualization="True"
          EnableRowVirtualization="True"
        ScrollViewer.IsDeferredScrollingEnabled="True"
        CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="True"
         ItemsSource ="{Binding}" Block.TextAlignment="Center"
         AlternatingRowBackground="LightGoldenrodYellow" RowBackground="White"
          CanUserAddRows="False" CanUserDeleteRows="False" FrozenColumnCount="1"
           GridLinesVisibility="None" Style="{StaticResource ConcensusDataGridStyle}">
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

在.cs文件中,我发现我可以更改数据的fontSize.但是,我似乎无法找到将标题字体缩小的位置/方式.我正在尝试保存不动产并收缩DataGrid,但是我找不到将列缩小的位置,以及第一行中标题的文本更小.谢谢.

编辑:好的我发现我只能更改DataGrid中的FontSize.

c# wpf xaml wpfdatagrid

3
推荐指数
1
解决办法
7406
查看次数

WPF DataGrid:调整列的大小

我有一个System.Windows.Controls.DataGrid,其属性CanUserResizeColumns分配给True.现在,我可以通过使用鼠标左键单击2列标题来调整列的宽度.

但我还希望能够更改dataGrid的任何行中的列的宽度,而不仅仅是在列标题中.可能吗?

.net wpf datagrid resize wpfdatagrid

3
推荐指数
1
解决办法
5860
查看次数

VirtualizingStackPanel未正确处理折叠的项目

我有一个ListView用于显示字段列表的wpf; 基于属性值,某些字段可以在运行时折叠.它的工作正常,但ListVIew不会折叠为在运行时折叠的ListViewItem保留的空间.

在此输入图像描述

我能够在Snoop中看到额外的ListViewItems(可见性为折叠),ListView也会向上移动项目,但它不会调整其高度以移除空白区域!

我可以肯定地说,由于VirtualizedStackPanel将ItemsPanel更改为StackPanel解决了这个问题,这种情况正在发生.这是相关的ListViewXAML:

<ListView
    x:Class="Wizards.FieldBinderModelListView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Margin="0"
    VerticalAlignment="Top"
    HorizontalContentAlignment="Stretch"
    VerticalContentAlignment="Top"
    Background="White"
    BorderThickness="0"
    Grid.IsSharedSizeScope="True"
    KeyboardNavigation.DirectionalNavigation="Continue"
    Padding="1"
    ScrollViewer.HorizontalScrollBarVisibility="Hidden"
    ScrollViewer.VerticalScrollBarVisibility="Hidden"
    SelectionChanged="ListViewSelectionChanged"
    SelectionMode="Single">
    <ListView.ItemsPanel>
       <ItemsPanelTemplate>
        <!--Works fine with StackPanel but not with VirtualizingStackPanel
          Explicitly added this PanelTemplate to show that it works with            
          StackPanel;ListView uses VirtualizingStackPanel as default panel 
          and causes same problem-->              
        <!--<StackPanel Orientation="Vertical" VerticalAlignment="Top"/>-->
          <VirtualizingStackPanel Orientation="Vertical" 
               VerticalAlignment="Top"/>
       </ItemsPanelTemplate>
    </ListView.ItemsPanel>
    <ListView.ItemContainerStyle>
      <Style TargetType="{x:Type ListViewItem}">
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Foreground" Value="Black" />
            </Trigger>
            <DataTrigger Binding="{Binding …
Run Code Online (Sandbox Code Playgroud)

.net wpf listview .net-4.0 virtualizingstackpanel

3
推荐指数
1
解决办法
1903
查看次数

DynamicResource颜色不起作用

我有以下代码:

<Color x:Key="SelectedColor">Gold</Color> 
Run Code Online (Sandbox Code Playgroud)

以及包含颜色的TabItem样式

<VisualState x:Name="Selected">
    <Storyboard>
        <ColorAnimationUsingKeyFrames 
            Storyboard.TargetProperty="(Shape.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Color)"
            Storyboard.TargetName="InnerRectangle2">
            <EasingColorKeyFrame KeyTime="0" Value="{DynamicResource SelectedColor}"/>
        </ColorAnimationUsingKeyFrames>
Run Code Online (Sandbox Code Playgroud)

事实证明我不能使用DynamicResource一个EasingColorKeyFrame.
我能做些什么来达到我的效果?

我需要动态设置颜色,所以才换"{DynamicResource SelectedColor}""{StaticResource SelectedColor}"是假表.

我已经创建了一个很小的解决方案来演示这个问题 - Selected Tab应该是Gold color,但它实际上是透明的,因为我猜VSM无法解析名为" SelectedColor" 的颜色

http://dl.dropbox.com/u/10557283/DynamicBug.zip

.net wpf styles dynamicresource

3
推荐指数
1
解决办法
1386
查看次数

带有样式和日期触发器的 DataTemplate 来自代码

我创造了这个DataTemplate,但我无法弄清楚如何添加style一个DataTriggerIMG变量。

我希望img根据Suppliers[i].Stock(int)的值显示不同的图像

资源图标

Properties.Resources.InStock     => Suppliers[i].Stock > 0
Properties.Resources.OutOfStock  => Suppliers[i].Stock = 0
Properties.Resources.Unknown     => Suppliers[i].Stock = null
Run Code Online (Sandbox Code Playgroud)

我的代码到目前为止。

private DataTemplate GetStockTemplate(int i)
{
    var template = new DataTemplate();

    var wp = new FrameworkElementFactory(typeof (WrapPanel));
    wp.SetValue(FrameworkElement.HorizontalAlignmentProperty, HorizontalAlignment.Right);
    wp.SetValue(WrapPanel.OrientationProperty, Orientation.Horizontal);

    var tx = new FrameworkElementFactory(typeof (TextBox));
    tx.SetBinding(TextBox.TextProperty, new Binding("Suppliers[" + i + "].Stock") {StringFormat = "{0:n0}"});
    tx.SetValue(TextBoxBase.IsReadOnlyProperty, true);
    tx.SetValue(Control.BorderThicknessProperty, new Thickness(0));
    tx.SetValue(Control.BackgroundProperty, Brushes.Transparent);
    tx.SetValue(TextBox.TextAlignmentProperty, TextAlignment.Right);

    wp.AppendChild(tx);

    var img = …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf styles datatemplate

3
推荐指数
1
解决办法
2381
查看次数

在informix中复制表

如何在informix数据库中有效地复制表?我想做点什么

create table new_table as (select * from old_table)
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

sql informix

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

haskell中的Gmail TLS hanshake故障

我正在尝试编写一个小脚本来通过gmail发送电子邮件.
我可以连接到gmail但是当我尝试hanshake它失败了.
任何指针都可以获得握手吗?

这是代码:

import Network.Socket
import Network
import Network.TLS
import Network.TLS.Extra

import Crypto.Random
import Data.CertificateStore -- to remove
import System.Certificate.X509 --to use I think

import System.IO
import Text.Printf

import Control.Monad (forever)
import qualified Data.ByteString.Char8 as B


main :: IO ()
main = emailGmail2

tListen :: Context -> IO ()
tListen ctx =
    forever $ recvData ctx >>= B.putStrLn

cWrite :: Handle -> String -> IO ()
cWrite h s  = do
    hPrintf h "%s\r\n" s
    printf    "> %s\n" s …
Run Code Online (Sandbox Code Playgroud)

ssl gmail haskell handshake

3
推荐指数
1
解决办法
1262
查看次数

c ++/cx中的storagefile :: ReadAsync异常?

我一直在尝试使用c ++/cx StorageFile::ReadAsync()来读取商店应用程序中的文件,但它始终返回无效的params异常,无论什么

// "file" are returned from FileOpenPicker
IRandomAccessStream^ reader = create_task(file->OpenAsync(FileAccessMode::Read)).get();
if (reader->CanRead)
{
    BitmapImage^ b = ref new BitmapImage();
    const int count = 1000000;
    Streams::Buffer^ bb = ref new Streams::Buffer(count);
    create_task(reader->ReadAsync(bb, 1, Streams::InputStreamOptions::None)).get();
}
Run Code Online (Sandbox Code Playgroud)

我已打开所有清单功能,并为声明添加了"文件打开选取器"+"文件类型关联".有任何想法吗 ?谢谢!

ps:我找到的大多数解决方案都是针对C#,但代码结构类似......

c++ windows-8 c++-cx windows-store-apps

3
推荐指数
1
解决办法
2338
查看次数

WPF 拖动滚动无法正常工作

我想在我的应用程序中实现拖动滚动功能,但在路上遇到了问题。有谁能够帮助我?我有一个 ScrollViewer,里面有一个 ItemsControl,在 ItemsTemplate 中我有一个 UserControl。我想将该 UserControl 拖动到 ItemsControl 中。当我拖动到 ItemsControl 的边界时,我希望 ScrollViewer 向下滚动。

protected override void OnPreviewMouseMove(System.Windows.Input.MouseEventArgs e)
{
    if (this.IsMouseCaptured)
    {
        // Get the new mouse position. 
        Point mouseDragCurrentPoint = e.GetPosition(this);

        if (Math.Abs(mouseDragCurrentPoint.Y - this.ActualHeight) <= 50)
        {
            this._scrollStartOffset.Y += 5;
            _containingScrollViewer.ScrollToVerticalOffset(this._scrollStartOffset.Y);
        }
        if (mouseDragCurrentPoint.Y <= 50)
        {
            this._scrollStartOffset.Y -= 5;
            _containingScrollViewer.ScrollToVerticalOffset(this._scrollStartOffset.Y);
        }
    }
    base.OnPreviewMouseMove(e);
}
Run Code Online (Sandbox Code Playgroud)

当我通过调用DragDrop.DoDragDrop()滚动开始拖动时不会发生。但是当我禁用拖动时,ScrollViewer 会根据鼠标位置向下滚动。也许在拖动和捕获鼠标时我没有考虑到一些事情?谢谢关注。加雷金

wpf scroll drag-and-drop itemscontrol

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

更改"画布"内控件的位置后,ScrollBars不可见

我创建了一个继承自WPF的自定义画布控件Canvas.我在主窗口中使用它 -

<ScrollViewer
    HorizontalScrollBarVisibility="Auto"
    VerticalScrollBarVisibility="Auto">
    <RTD:RTDesignerCanvas
        Margin="5"
        Background="White"
        x:Name="canvas1"
        Focusable="True"
        AllowDrop="True">
    </RTD:RTDesignerCanvas>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

一切正常,但是当我尝试像这样设置控件的位置时

Canvas.SetTop(item, 200);

滚动条不可见,控件隐藏在某处.有趣的是,如果我向其添加另一个控件滚动条是可见的,我可以向下滚动以查看上一个控件.

我试着用

base.InvalidateVisual();
base.UpdateLayout();
base.InvalidateArrange();
Run Code Online (Sandbox Code Playgroud)

更换物品后TopLeft没有任何反应; 我错过了什么或者由于某些错误而发生这种情况?

更新:

澄清,说我有有它的画布width,height100,100.现在,如果我用移动的控制(在画布上已添加),Canvas.SetLeft(myControl, 200)然后它会移动到这是默认情况下不可见,并且滚动条也被禁止的位置,所以没有办法看到那种控制.

现在,如果我向Canvas添加另一个控件,ScrollBars会正确显示,我可以通过滚动查看上一个控件.

.net wpf canvas custom-controls scrollviewer

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