小编son*_*ony的帖子

Window GotFocus事件未触发

我无法GotFocus()通过单击在WPF窗口中触发事件.但是,如果我点击任何控件,它将被触发.

我的要求如下:我有一个hostwindow,它有一个带有两个datagrids的视口,可以托管用户控件.我在这个用户控件上做了像翻转和淡入淡出的动画.我正在使用透明背景(玻璃效果)来控制.但是当一个用户控件在另一个用户控件之上时,它们都会重叠.因此,当用户单击一个用户控件时,我想使顶部不透明.

wpf

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

双重动画会重置值吗?

我有一个双重动画,窗口被缩小并移到一侧。我在Window_Deactivated事件中执行此操作。代码如下:

        <Storyboard x:Key="StoryTestScaleDownGrd1">

        <DoubleAnimation Storyboard.TargetName="ScaleUp" Storyboard.TargetProperty="ScaleX" 
                       From="1" To=".20" Duration="0:0:.25" BeginTime="00:00:00" />

        <DoubleAnimation Storyboard.TargetName="ScaleUp" Storyboard.TargetProperty="ScaleY" 
                       From="1" To=".20" Duration="0:0:.25" BeginTime="00:00:00" />            

        <DoubleAnimation Storyboard.TargetName="MoveCenter1" Storyboard.TargetProperty="OffsetX"
                         Duration="0:0:.25" BeginTime="00:00:00.25" />

        <DoubleAnimation Storyboard.TargetName="MoveCenter1" Storyboard.TargetProperty="OffsetY" 
                         Duration="0:0:.25" BeginTime="00:00:00.25"/>

    </Storyboard>
Run Code Online (Sandbox Code Playgroud)

在Window_Activated事件中,我有以下代码:

        <Storyboard x:Key="StoryTestScaleUpGrd1">

        <DoubleAnimation Storyboard.TargetName="ScaleUp" Storyboard.TargetProperty="ScaleX" 
                       From=".20" To="1" Duration="0:0:.25" BeginTime="00:00:00.75" />

        <DoubleAnimation Storyboard.TargetName="ScaleUp" Storyboard.TargetProperty="ScaleY" 
                         From=".20" To="1" Duration="0:0:.25" BeginTime="00:00:00.75" />

        <DoubleAnimation Storyboard.TargetName="MoveCenter1" Storyboard.TargetProperty="OffsetX" 
                        Duration="0:0:.25" BeginTime="00:00:00.5" />

        <DoubleAnimation Storyboard.TargetName="MoveCenter1" Storyboard.TargetProperty="OffsetY" 
                        Duration="0:0:.25" BeginTime="00:00:00.5" />

    </Storyboard>
Run Code Online (Sandbox Code Playgroud)

我的viewport2dvisual3d如下:

        <Viewport2DVisual3D.Transform>
            <Transform3DGroup>

                <RotateTransform3D>
                    <RotateTransform3D.Rotation>
                        <AxisAngleRotation3D x:Name="Win1Angle" Angle="0" Axis="0, 1, 0" />
                    </RotateTransform3D.Rotation>
                </RotateTransform3D>

                <ScaleTransform3D x:Name="ScaleUp"  /> …
Run Code Online (Sandbox Code Playgroud)

wpf

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

手动订购列表C#?

我有一份成分列表,其中包含成分名称和相应的值.我想根据预先定义的顺序排序.

 List<Ingredients> frmltnIngredientsList = new List<Ingredients>
Run Code Online (Sandbox Code Playgroud)

该列表最多可包含10条记录.前四个记录应按以下顺序排列:

  • 蛋白
  • 纤维

其余的可以按任何顺序排列

c#

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

如何在 XAML 中覆盖 Datagrid 单元格样式?

我在 app.xaml 中定义了一个样式,如下所示:

<Style TargetType="DataGridCell">
        <Setter Property= "BorderThickness" Value="1"/>            
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="DataGridCell">
                            <Grid Height="18">
                                <Border BorderBrush="Black" BorderThickness=".2" >
                                    <Border x:Name="border" Background="#992288ff" BorderBrush="Black" BorderThickness=".2">
                                      ......
                      ......
                  ......
                                    </Border>
                                </Border>
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Trigger>
     </Style.Triggers>
Run Code Online (Sandbox Code Playgroud)

在我的表单中,我为一个单元格定义了一种样式。代码如下:

 <DataGridTextColumn Width="*" Header="Status" Binding="{Binding Status, Mode=TwoWay}" IsReadOnly="True" >
                    <DataGridTextColumn.CellStyle>
                        <Style TargetType="DataGridCell">
                            <Setter Property="Foreground">
                                <Setter.Value>
                                    <Binding Converter="{StaticResource FGColorKey}"/>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </DataGridTextColumn.CellStyle>
                </DataGridTextColumn>
Run Code Online (Sandbox Code Playgroud)

这里我只定义了前景样式。但是我在 app.xaml 中为单元格模板定义的样式不适用于这个单元格。请看下面的图片:

在此处输入图片说明

wpf

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

如何解析日期时间格式为"20150129163809"的字符串?

我的应用程序我需要转换日期时间格式的字符串,如下所示:

var k=    DateTime.Parse("20150129163809");
Run Code Online (Sandbox Code Playgroud)

但它抛出了一条错误消息"String未被识别为有效的DateTime".

但是,当我这样做的时候

DateTime.Parse("2015-01-29 16:38:09")
Run Code Online (Sandbox Code Playgroud)

它的工作正常......

可能有什么不对?

c#

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

WPF菜单项左对齐?

在此输入图像描述

我想在主菜单的右侧显示菜单项.目前它显示在左侧.

  <Menu Name="menu1" Width="800" Margin="0,0,0,670">
        <MenuItem Header="File">
            <MenuItem Header="Open"/>
            <MenuItem Header="Close"/>
        </MenuItem>
        <MenuItem Header="Edit"/>
    </Menu>


 <Style TargetType="{x:Type MenuItem}">
        <Setter Property="MinHeight" Value="30" />
        <Setter Property="MinWidth" Value="100"/>
        <Setter Property="HeaderTemplate">
            <Setter.Value>
                <DataTemplate>
                    <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center"  Content="{Binding}" />                       
                </DataTemplate>                    
            </Setter.Value>               
        </Setter>
        <Setter Property="Background" Value="Yellow" />
        <Setter Property="BorderBrush" Value="Black" />
        <Setter Property="BorderThickness" Value="1" />
    </Style>
Run Code Online (Sandbox Code Playgroud)

wpf

0
推荐指数
1
解决办法
2011
查看次数

如何以编程方式向表单中的所有控件添加工具提示 - WPF,C#?

在此输入图像描述

我有一个WPF表单,具有不同类型的控件,如文本框,文本块,组合框,按钮等.我需要使用C#动态地向每个控件添加工具提示,以便它们可以显示以下信息:

  1. X和Y位置
  2. TabIndex的.

我为每个控件执行如下代码(如下所示的文本框代码):

 foreach (Control ctrl in grd.Children)
        {
            if (ctrl.GetType().ToString() == "System.Controls.TextBox")
            {
                tbox = ctrl as TextBox;
                Point p = Mouse.GetPosition(tbox);
                tbox.ToolTip =p.X + " " + p.Y + " \n " + tbox.TabIndex ;
            }
        }
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有什么想法吗?

c# wpf tooltip

0
推荐指数
1
解决办法
5479
查看次数

如何将工具提示的可见性绑定到textblock中的文本?

<DataGrid x:Name="dgRecords1"
          CanUserAddRows="False" IsReadOnly="True"
          ColumnHeaderStyle="{DynamicResource DataGridColumnHeaderStyle1}"
          Style="{DynamicResource StyleDatagrid}"
          SelectionChanged="dgRecords1_SelectionChanged"
          Height="251" Width="569" Margin="41,173,168,0">
  <DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
      <Setter Property="ToolTip">
        <Setter.Value>
          <Border Width="200" Height="80"
                  BorderBrush="Black" BorderThickness="1"
                  Background="AliceBlue">
            <StackPanel Orientation="Vertical">
              <StackPanel Height="30" Background="Black">
                <TextBlock Text="Email Sent To"
                           FontSize="14" FontWeight="Bold" Foreground="White"/>
              </StackPanel>
              <StackPanel>
                <TextBlock Text="{Binding SentToList}"
                           TextWrapping="Wrap" FontWeight="Bold"/>
              </StackPanel>
            </StackPanel>
          </Border>
        </Setter.Value>
      </Setter>
    </Style>
  </DataGrid.RowStyle>
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,

   <TextBlock TextWrapping="Wrap" FontWeight="Bold" Text="{Binding SentToList}" />
Run Code Online (Sandbox Code Playgroud)

我想检查这个文本块中是否有东西,如果没有,我需要使工具提示不可见.有没有办法使用触发器?

wpf xaml tooltip

0
推荐指数
1
解决办法
1859
查看次数

使用Linq分组?

我有一份清单,其中列出了每个客户购买的产品和药物的详细信息.

在此输入图像描述

我的要求如下:

  1. 我需要提取大约5个字段.
  2. 我需要通过两个领域的组合对它们进行分组(在我的情况下是产品和药物)
  3. 我需要获得购买这些组合的客户数量.
  4. 我需要得到这些组合的总吨数.

我想用这些信息创建一个新列表.

我不知道如何使用它.我做了类似下面的事情:

var k = lstOutWeigh.GroupBy(p => new { prod = p.Product, med = p.Medication });
Run Code Online (Sandbox Code Playgroud)

c# linq

-1
推荐指数
1
解决办法
2904
查看次数

标签 统计

wpf ×6

c# ×4

tooltip ×2

linq ×1

xaml ×1