javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

wpf-如何覆盖全局样式(没有x:Key),或者将命名样式应用于所有以类型为目标的控件?

我声明了要应用于项目中所有按钮的样式,该样式位于ResourceDictionary中:

<Style TargetType="StackPanel">
    <Setter Property="Orientation" Value="Horizontal" />
    <Setter Property="VerticalAlignment" Value="Center"/>
    <Setter Property="HorizontalAlignment" Value="Center"/>
</Style>

现在,在某些窗口中,我想从此样式继承,但添加一个值:

<Style TargetType="StackPanel"> 
    <Setter Property="Margin" Value="5"/>
</Style>

问题在于它不继承全局样式,为了继承,我必须为全局样式分配一个键:

<Style TargetType="StackPanel" x:Key="StackPanelStyle" />

然后在窗口的XAML中继承(或覆盖-可选):

<Style TargetType="StackPanel" BasedOn="StackPanelStyle" />

问题在于,如果您分配一个键,它不是全局的,您必须在每个窗口/范围内调用它。

我的问题的解决方案应该是以下两者之一(我还有其他遗漏的地方吗?):

  1. 具有带有按键的全局样式,该样式会自动应用于整个应用程序中的所有目标控件。
  2. 引用ResourceDictionary级别未命名样式的一种方法,可以不使用它并覆盖它。

我考虑过在实际起作用的命名样式(在ResourceDictionary中)附近重新声明样式:

<!--In the ResourceDictionary-->
<Style x:Key="StackPanelStyle" TargetType="StackPanel">
    <Setter Property="Orientation" Value="Horizontal" />
    <Setter Property="VerticalAlignment" Value="Center"/>
    <Setter Property="HorizontalAlignment" Value="Center"/>
</Style>
<!--In the app.xaml-->
<Style TargetType="StackPanel" BasedOn="{StaticResource StackPanelStyle}"/>
<!--In the window/page scope-->
<Style TargetType="StackPanel" BasedOn="{StaticResource StackPanelStyle}"/

但是我正在寻找更好的东西,而不是愚蠢地重新声明所有样式。

trans by 2020-08-12T08:10:51Z

c#-在ViewModel中使用CollectionViewSource的正确方法

我使用拖放将数据源对象(一个数据库模型)绑定到CollectionViewSource(基本上遵循带WPF的实体框架数据绑定中的此示例。

使用此实现,一切正常。

XAML

<Window.Resources>    
<CollectionViewSource x:Key="categoryViewSource"  
    d:DesignSource="{d:DesignInstance {x:Type local:Category}, CreateList=True}"/>
</Window.Resources>
<Grid DataContext="{StaticResource categoryViewSource}">
..

背后的代码

private void Window_Loaded(object sender, RoutedEventArgs e)
{
   System.Windows.Data.CollectionViewSource categoryViewSource =
      ((System.Windows.Data.CollectionViewSource)(this.FindResource("categoryViewSource")));

  _context.Categories.Load();
  categoryViewSource.Source = _context.Categories.Local;        
}

视图模型

public MainWindow()
{
    InitializeComponent();
    this.DataContext = new MyViewModel();
}

但是,当我尝试在ViewModel中使用相同的代码时,它不起作用(CollectionViewSource不可用),此外,我认为这不是正确的方法(即在MVVM中使用DataBinding)。

我真的很感激能为我指出什么是用DataGrid实现CollectionViewSourceDataBinding的正确方法。

trans by 2020-08-11T21:29:14Z

首页> C#>我怎么知道什么是WPF窗口在

在C#应用程序中,如何确定WPF窗口是在主监视器中还是在另一个监视器中?

trans by 2020-08-11T11:40:27Z

WPF使用MVVM模式浏览视图

我正在使用MVVM模式构建我的第一个WPF。 在这个社区的帮助下,我设法创建了我的模型,我的第一个ViewModel和视图。 现在,我想为设计基本应用程序布局界面的应用程序增加一些复杂性。 我的想法是至少拥有2个子视图和一个主视图,并在多个XAML上将它们分开:

  • Main.XAML
  • 产品.XAML
  • 客户端XAML

Main将具有一个菜单和一个用于加载子视图(产品和客户)的空间。 现在,按照MVVM模式,视图之间的所有导航逻辑都应写在ViewModel上。 所以我的想法是要有4个ViewModels:

  • 主视图模型
  • 产品浏览模型
  • 客户视图模型
  • NavigationViewModel

那么NavigationViewModel应该包含子viewmodel的集合? 主动的视图模型对吗?

所以我的问题是:

1)如何使用MVVM模式在主视图上加载不同的视图(产品,客户)?

2)如何实现导航viewModel?

3)如何控制打开或活动视图的最大数量?

4)如何在打开的视图之间切换?

我一直在进行大量搜索和阅读,找不到带有WPF的MVVM导航的简单工作示例,该示例在主视图中加载了多个视图。 当时很多:

1)使用我现在不想使用的外部工具包。

2)将用于创建所有视图的所有代码放在一个XAML文件中,这似乎不是一个好主意,因为我需要实现近80个视图!

我在正确的道路上吗? 任何帮助,特别是一些代码,将不胜感激。

更新

因此,我遵循@LordTakkera的建议构建了一个测试项目,但遇到了麻烦。 这是我的解决方案的样子:Solution

我创造:

  • 两种模式(客户和产品)

  • 一个MainWindow和两个wpf用户控件(客户端和产品)XAML。

  • 三种视图模型(客户,产品和主视图模型)

然后,我在每个视图上将dataContext设置为对应的viewModel。 之后,我用ContentPresenter这样创建MainWindow并将其绑定到viewmodel的属性。

MainWindow.XAML

<Window x:Class="PruevaMVVMNavNew.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="519" Width="890">    
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="150"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="80"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="20"/>
    </Grid.RowDefinitions>        
    <Border Grid.Column="0" Grid.ColumnSpan="2" Background="AntiqueWhite" ></Border>
    <Border Grid.Row="1" Grid.RowSpan="2" Background="AliceBlue"></Border>
    <Border Grid.Row="1" Grid.Column="1" Background="CadetBlue"></Border>                
    <ContentPresenter Grid.Row="1" Grid.Column="1" x:Name="ContentArea" Content="{Binding CurrentView}"/>        
    <StackPanel Margin="5" Grid.Column="0" Grid.Row="1">            
        <Button>Clients</Button>
        <Button>Products</Button>
    </StackPanel>
</Grid>

这也是MainWindow的viewmodel:

class Main_ViewModel : BaseViewModel
    {
        public Main_ViewModel()
        {
            CurrentView = new Clients();
        }

        private UserControl _currentView;
        public UserControl CurrentView
        {
            get
            {
                return _currentView;
            }
            set
            {
                if (value != _currentView)
                {
                    _currentView = value;
                    OnPropertyChanged("CurrentView");
                }
            }
        }

    }

因此,默认情况下,此负载在客户端视图中显示,如下所示(正确!):

Current state

因此,我想我需要一种将左侧按钮与某个viemodel关联起来的方法,然后将它们与Main viewModel的CurrentView属性绑定。 我怎样才能做到这一点?

更新2

根据@LordTakkera的建议,我以这种方式修改了我的主要viewModel:

class Main_ViewModel : BaseViewModel
    {
        public ICommand SwitchViewsCommand { get; private set; }

        public Main_ViewModel()
        {
            //CurrentView = new Clients();
            SwitchViewsCommand = new RelayCommand((parameter) => CurrentView = (UserControl)Activator.CreateInstance(parameter as Type));
        }

        private UserControl _currentView;
        public UserControl CurrentView
        {
            get
            {
                return _currentView;
            }
            set
            {
                if (value != _currentView)
                {
                    _currentView = value;
                    OnPropertyChanged("CurrentView");
                }
            }
        }
    }

我使用RelayCommand代替DelegateCommand,但是我认为它的工作方式相同。 当我按下按钮并且类型参数字符串正常时执行命令,但出现此错误:

Error

转换:值不能为null。 参数名称:类型。 建议使用New关键字创建对象实例我不知道将New关键字放在哪里。 我尝试使用CommandParameter,但无法正常工作。 任何想法? 谢谢

更新3

在这里收到所有建议和帮助以及大量工作之后,这是我的最终导航菜单和应用程序界面的基础。

Capture 1 Capture 2

trans by 2020-08-11T11:21:01Z

使用多个绑定的C#WPF IsEnabled?

我有一个WPF xaml文件,它描述了GUI的一部分,我希望启用/禁用特定控件要依赖其他两个控件。 此刻的代码如下所示:

<ComboBox Name="MyComboBox"
          IsEnabled="{Binding ElementName=SomeCheckBox, Path=IsChecked}"/>

但我也希望它也依赖于另一个复选框,例如:

<ComboBox Name="MyComboBox"
          IsEnabled="{Binding ElementName=SomeCheckBox&AnotherCheckbox, Path=IsChecked}"/>

最好的方法是什么? 我不禁感到自己缺少明显的东西或以错误的方式进行操作?

trans by 2020-08-11T02:03:36Z

xaml-Apple风格滚动条WPF

我试图减小滚动条控件的大小,使其更像“ Apple”,因为它非常适合我的界面。

我想要达到的目标是这样的:

enter image description here

到目前为止,我只有这个

        <Style TargetType="{x:Type ScrollBar}">
            <Setter Property="Stylus.IsFlicksEnabled" Value="True" />
            <Setter Property="Background" Value="#8C8C8C" />
            <Setter Property="Width" Value="8"/>
            <Setter Property="MinWidth" Value="8" />
        </Style>

工作XAML

可以在WPF中的Apple Style滚动条上找到实现

    <!--Scrollbar Thumbs-->
<Style x:Key="ScrollThumbs" TargetType="{x:Type Thumb}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Thumb}">
                <Grid x:Name="Grid">
                    <Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Fill="Transparent" />
                    <Border x:Name="Rectangle1" CornerRadius="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto"  Background="{TemplateBinding Background}" />
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="Tag" Value="Horizontal">
                        <Setter TargetName="Rectangle1" Property="Width" Value="Auto" />
                        <Setter TargetName="Rectangle1" Property="Height" Value="7" />
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<!--ScrollBars-->
<Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
    <Setter Property="Stylus.IsFlicksEnabled" Value="false" />
    <Setter Property="Foreground" Value="#8C8C8C" />
    <Setter Property="Background" Value="Transparent" />
    <Setter Property="Width" Value="8" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ScrollBar}">
                <Grid x:Name="GridRoot" Width="8" Background="{TemplateBinding Background}">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="0.00001*" />
                    </Grid.RowDefinitions>

                    <Track x:Name="PART_Track" Grid.Row="0" IsDirectionReversed="true" Focusable="false">
                        <Track.Thumb>
                            <Thumb x:Name="Thumb" Background="{TemplateBinding Foreground}" Style="{DynamicResource ScrollThumbs}" />
                        </Track.Thumb>
                        <Track.IncreaseRepeatButton>
                            <RepeatButton x:Name="PageUp" Command="ScrollBar.PageDownCommand" Opacity="0" Focusable="false" />
                        </Track.IncreaseRepeatButton>
                        <Track.DecreaseRepeatButton>
                            <RepeatButton x:Name="PageDown" Command="ScrollBar.PageUpCommand" Opacity="0" Focusable="false" />
                        </Track.DecreaseRepeatButton>
                    </Track>
                </Grid>

                <ControlTemplate.Triggers>
                    <Trigger SourceName="Thumb" Property="IsMouseOver" Value="true">
                        <Setter Value="{DynamicResource ButtonSelectBrush}" TargetName="Thumb" Property="Background" />
                    </Trigger>
                    <Trigger SourceName="Thumb" Property="IsDragging" Value="true">
                        <Setter Value="{DynamicResource DarkBrush}" TargetName="Thumb" Property="Background" />
                    </Trigger>

                    <Trigger Property="IsEnabled" Value="false">
                        <Setter TargetName="Thumb" Property="Visibility" Value="Collapsed" />
                    </Trigger>
                    <Trigger Property="Orientation" Value="Horizontal">
                        <Setter TargetName="GridRoot" Property="LayoutTransform">
                            <Setter.Value>
                                <RotateTransform Angle="-90" />
                            </Setter.Value>
                        </Setter>
                        <Setter TargetName="PART_Track" Property="LayoutTransform">
                            <Setter.Value>
                                <RotateTransform Angle="-90" />
                            </Setter.Value>
                        </Setter>
                        <Setter Property="Width" Value="Auto" />
                        <Setter Property="Height" Value="8" />
                        <Setter TargetName="Thumb" Property="Tag" Value="Horizontal" />
                        <Setter TargetName="PageDown" Property="Command" Value="ScrollBar.PageLeftCommand" />
                        <Setter TargetName="PageUp" Property="Command" Value="ScrollBar.PageRightCommand" />
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
trans by 2020-08-11T00:49:12Z

c#-在NUnit测试中使用WPF组件-如何使用STA?

我需要在NUnit单元测试中使用一些WPF组件。 我通过ReSharper运行测试,使用WPF对象时测试失败,并显示以下错误:

System.InvalidOperationException:

调用线程必须是STA,因为许多UI组件都需要STA。

我已经读过这个问题,听起来好像线程需要是STA,但是我还没有弄清楚该怎么做。 触发该问题的是以下代码:

[Test]
public void MyTest()
{
    var textBox = new TextBox(); 
    textBox.Text = "Some text"; // <-- This causes the exception.
}
trans by 2020-08-10T19:06:58Z

c#-禁用WPF窗口的最大化按钮,保持调整大小功能

因此,WPF窗口只有四个调整大小模式选项:3003870360803738738624,CanMinimizeCanResizeCanResizeWithGrip。不幸的是,启用调整大小的选项也可以最大化窗口,而那些对我来说并不是没有用。

是否有一个选项可以在保持调整大小功能的同时禁用最大化按钮?

我更喜欢不包含WinAPI内容的解决方案。

trans by 2020-08-09T14:12:20Z

WPF命令行参数,聪明的方法吗?

我正在寻找一种方法,可以将命令行参数解析到WPF应用程序中,而只是读取用户传递的参数值。

举个例子

application.exe /setTime 5

有没有办法让我有一些代码可以在其中说:

MessageBox.Show(arg("setTime"));

这将输出5

工作方案

如何创建智能WPF命令行参数

trans by 2020-08-09T13:17:52Z

为何使用RelayCommand

我最近在WPF中进行了很多编程,但是此时我的View和ViewModel并不是分开的。 好吧,这是部分的。 我所有与文本框中的文本,标签的内容,数据网格中的列表等有关的绑定都是由常规属性(其中带有NotifyPropertyChanged事件)完成的。

我所有用于处理按钮单击或文本更改内容的事件都是通过链接事件来完成的。 现在,我想开始使用命令并找到本文:[http://www.codeproject.com/Articles/126249/MVVM-Pattern-in-WPF-A-Simple-Tutorial-for-Absolute。] 有关如何设置MVVM的说明,但我对RelayCommand感到困惑。

它做什么工作?它可以用于表单中的所有命令吗?当未填写某些文本框时,如何使按钮禁用?


编辑1:

一个很好的解释:“它可以用于表单中的所有命令吗?” 在这里得到回答:[https://stackoverflow.com/a/22286816/3357699]

这是我到目前为止的代码:[https://stackoverflow.com/a/22289358/3357699]

trans by 2020-08-09T12:29:01Z

C#阅读D

如何从WPF中的数据集读取数据? 我有一个只有2列的火车时刻表,我希望能够读取出发时间并计算下一班火车何时离开。 例如,现在的时间是12:29,我的申请应该告诉我下一班火车将在12:33出发。

我已经左右搜索了。 我在.NET 3.5上。

trans by 2020-08-08T18:04:25Z

使用C#在WPF中的网格上设置背景图像

我有一个问题:我想通过后面的代码设置网格的图像。

有人可以告诉我该怎么做吗?

trans by 2020-08-08T15:44:31Z

当WPF Popup的锚元素移动时,如何移动它?

我有一个这样定义的弹出窗口:

<Popup
    Name="myPopup"
    StaysOpen="True"
    Placement="Bottom"
    PlacementRectangle="0,20,0,20"
    PlacementTarget="{Binding ElementName=myPopupAnchor}">
    <TextBlock ... />
</Popup>

我将事件处理程序添加到PlacementTarget元素中,用于事件3002499984395865863041和3002499984395863043042。这两个事件处理程序可切换弹出窗口的可见性。

我的问题是,myPopupAnchor的位置仅在第一次显示弹出窗口或隐藏然后再次显示时才读取。 如果锚点移动,则弹出窗口不移动。

我正在寻找解决此问题的方法,我想要一个移动的Popup。 我是否可以通知WPF 30024999843958630630绑定已更改,应重新阅读? 我可以手动设置弹出窗口的位置吗?

当前,我有一个非常粗糙的解决方法,涉及关闭然后再次打开弹出窗口,这会导致一些重新绘制问题。

trans by 2020-08-08T15:31:08Z

c#-检测是否在WPF和Winforms中的UI线程上

我在下面编写了一个断言方法“ Ensure.CurrentlyOnUiThread()”,该方法检查当前线程是否为UI线程。

  • 检测Winforms UI线程是否可靠?
  • 我们的应用程序混合了WPF和Winforms,如何最好地检测有效的WPF UI线程?
  • 有一个更好的方法吗? 也许代码合同?

确保.cs

using System.Diagnostics;
using System.Windows.Forms;

public static class Ensure
{
    [Conditional("DEBUG")]
    public static void CurrentlyOnUiThread()
    {
        if (!Application.MessageLoop)
        {
            throw new ThreadStateException("Assertion failed: not on the UI thread");
        }
    }
}
trans by 2020-08-07T09:13:17Z

wpf-为什么我的XmlSerializer出现错误?

我对正在运行的应用程序进行了一些更改,并开始在此行代码中收到以下错误。

Dim Deserializer As New Serialization.XmlSerializer(GetType(Groups))

这是错误。

    BindingFailure was detected
    Message: The assembly with display name 'FUSE.XmlSerializers' failed to load in the 'LoadFrom' binding context of the AppDomain with ID 1. The cause of the failure was: System.IO.FileNotFoundException: Could not load file or assembly 'FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null'

    Message: The assembly with display name 'FUSE.XmlSerializers' failed to load in the 'LoadFrom' binding context of the AppDomain with ID 1. The cause of the failure was: System.IO.FileNotFoundException: Could not load file or assembly 'FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null'

=== Pre-bind state information ===
LOG: User = DOUG-VM\Doug
LOG: DisplayName = FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null, processorArchitecture=MSIL
 (Fully-specified)
LOG: Appbase = file:///E:/Laptop/Core Data/Data/Programming/Windows/DotNet/Work Projects/NOP/Official Apps/FUSE WPF/Fuse/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: E:\Laptop\Core Data\Data\Programming\Windows\DotNet\Work Projects\NOP\Official Apps\FUSE WPF\Fuse\bin\Debug\FUSE.vshost.exe.config
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///E:/Laptop/Core Data/Data/Programming/Windows/DotNet/Work Projects/NOP/Official Apps/FUSE WPF/Fuse/bin/Debug/FUSE.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///E:/Laptop/Core Data/Data/Programming/Windows/DotNet/Work Projects/NOP/Official Apps/FUSE WPF/Fuse/bin/Debug/FUSE.XmlSerializers/FUSE.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///E:/Laptop/Core Data/Data/Programming/Windows/DotNet/Work Projects/NOP/Official Apps/FUSE WPF/Fuse/bin/Debug/FUSE.XmlSerializers.EXE.
LOG: Attempting download of new URL file:///E:/Laptop/Core Data/Data/Programming/Windows/DotNet/Work Projects/NOP/Official Apps/FUSE WPF/Fuse/bin/Debug/FUSE.XmlSerializers/FUSE.XmlSerializers.EXE.

这是怎么回事?

trans by 2020-08-07T04:33:34Z

数据绑定-WPF:将布尔值显示为“是” /“否”

我有一个布尔值,需要在TextBlock中将其显示为“是”或“否”。 我正在尝试使用StringFormat执行此操作,但是我的StringFormat被忽略,并且TextBlock显示“ True”或“ False”。

<TextBlock Text="{Binding Path=MyBoolValue, StringFormat='{}{0:Yes;;No}'}" />

我的语法有问题吗?还是不支持这种类型的StringFormat?

我知道我可以使用ValueConverter来完成此操作,但是StringFormat解决方案似乎更优雅(如果可行)。

trans by 2020-08-05T08:48:54Z

CodeGo.net>如何分配将显示在任务栏中的应用程序图标?

我正在使用Wpf桌面应用程序,每当我运行我的应用程序时,它就会在任务栏中显示一个窗口和相关的选项卡(“常规”窗口功能)。 我的问题是选项卡使用的是未知文件类型的窗口图标,我尝试使用Window的Icon属性,分配了图标,但是仍然存在问题,当我运行应用程序时,任务栏选项卡最初显示了窗口的图标用于未知文件类型以及何时 窗口加载完成后,它更改为分配的图标。 我从一开始就希望Icon。 有什么帮助吗?

编辑:

我尝试使用.csproj->属性->应用程序选项卡->图标并将其设置为.ico文件。 它可以工作,但是我需要通过.exe文件运行我的应用程序。 它不适用于开发环境(通过Visual Studio运行时)。 我需要设置Start-Project选项。 还有其他解决方法吗?

trans by 2020-08-05T04:23:48Z

有没有一种方法可以在WPF ScrollViewer中启用触摸滚动?

我正在尝试在WPF应用程序中创建一个表单,该表单将允许用户使用类似iPhone的手势来滚动可用字段。 因此,我将所有窗体控件都放在了ScrollViewer的StackPanel中,并且当屏幕上显示的元素过多时,滚动条会按预期显示。

但是,当我尝试在支持触摸功能的设备上进行测试时,平移手势(将手指放在表面上并向上拖动)不会像我期望的那样向下移动可见区域。

当我在ListView中简单地放置多个元素时,触摸手势就可以正常工作。 有什么方法可以在ScrollViewer中启用相同的行为吗?

我的窗口的结构如下:

 <Window x:Class="TestTouchScrolling.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" Loaded="Window_Loaded">
<Grid>        
    <ScrollViewer Name="viewer" VerticalScrollBarVisibility="Auto">
        <StackPanel Name="panel">
            <StackPanel Orientation="Horizontal">
                <Label>Label 1:</Label>
                <TextBox Name="TextBox1"></TextBox>
            </StackPanel>
            <StackPanel Orientation="Horizontal">
                <Label>Label 2:</Label>
                <TextBox Name="TextBox2"></TextBox>
            </StackPanel>
            <StackPanel Orientation="Horizontal">
                <Label>Label 3:</Label>
                <TextBox Name="TextBox3"></TextBox>
            </StackPanel>

            <!-- Lots more like these -->

        </StackPanel>
    </ScrollViewer>
</Grid>

trans by 2020-08-04T22:17:39Z

如何将WPF用户控件的宽度拉伸到其窗口?

我有一个带有用户控件的Window,我想使usercontrol的宽度等于窗口的宽度。 怎么做?

用户控件是一个水平菜单,包含一个包含三列的网格:

<ColumnDefinition Name="LeftSideMenu" Width="433"/>
<ColumnDefinition Name="Middle" Width="*"/>
<ColumnDefinition Name="RightSideMenu" Width="90"/>

这就是为什么我希望窗口宽度与第二列相对应以将用户控件扩展为100%宽度。

编辑:

我使用的是网格,有Window的代码:

<Window x:Class="TCI.Indexer.UI.Operacao"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:tci="clr-namespace:TCI.Indexer.UI.Controles"
    Title=" " MinHeight="550" MinWidth="675" Loaded="Load" ResizeMode="NoResize" WindowStyle="None" WindowStartupLocation="CenterScreen" WindowState="Maximized" Focusable="True"
    x:Name="windowOperacao">
    <Canvas x:Name="canv">
        <Grid>
            <tci:Status x:Name="ucStatus"/> <!-- the control which I want to stretch in width -->
        </Grid>
    </Canvas>
</Window>
trans by 2020-08-04T22:13:29Z

wpfdatagrid-wpf:DataGrid禁用选定的行样式-或行选择

我看到了很多有关如何在DataGrid中设置选定行样式的示例,例如:

如何在DataGrid中设置所选行的颜色

我可以禁用选定的行样式吗? 我不想覆盖所选行更改的每件事。 只是不希望有任何明显的变化。 比创建模板更简单。

要么..

禁用选择行(如果这样更容易..)但是从浏览此论坛看似很黑

在WPF DataGrid中禁用选择

trans by 2020-08-04T06:25:05Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共31页