- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个 VS 扩展。用户使用 ToolWindowPane 与扩展进行交互。 ToolWindowPane 的高度和宽度取决于用户如何设置他们的 VS 环境,目前 ToolWindowPane 的内容无法正确调整大小。
这是窗口:
public class SymCalculationUtilitiesWindow : ToolWindowPane
{
/// <summary>
/// Initializes a new instance of the <see cref="SymCalculationUtilitiesWindow"/> class.
/// </summary>
public SymCalculationUtilitiesWindow() : base(null)
{
this.Caption = "Sym Calculation Utilities";
this.ToolBar = new CommandID(new Guid(Guids.guidConnectCommandPackageCmdSet), Guids.SymToolbar);
// This is the user control hosted by the tool window; Note that, even if this class implements IDisposable,
// we are not calling Dispose on this object. This is because ToolWindowPane calls Dispose on
// the object returned by the Content property.
this.Content = new UtilitiesView();
}
}
所以 UtilitiesView 是默认 View 。这是 xaml:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Sym.VisualStudioExtension" x:Class="Sym.VisualStudioExtension.Engines.UtilitiesView"
xmlns:engines="clr-namespace:Sym.VisualStudioExtension.Engines"
Background="{DynamicResource VsBrush.Window}"
Foreground="{DynamicResource VsBrush.WindowText}"
mc:Ignorable="d"
local:ViewModelLocator.AutoWireViewModel="True"
x:Name="MyToolWindow" Height="800" Width="400">
<UserControl.Resources>
<DataTemplate DataType="{x:Type engines:CalcEngineViewModel}">
<engines:CalcEngineView/>
</DataTemplate>
<DataTemplate DataType="{x:Type engines:TAEngineViewModel}">
<engines:TAEngineView/>
</DataTemplate>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="207*" />
<RowDefinition Height="593*"/>
</Grid.RowDefinitions>
<Grid x:Name="MainContent"
Grid.Row="1" Grid.RowSpan="2">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<ContentControl Content="{Binding CurrentEngineViewModel}" Grid.RowSpan="2"/>
</Grid>
</Grid>
然后用户做出决定 CurrentEngineViewModel 的选择。
以下是其中一种可能的 CurrentEngineViewModel 的 xaml:
<UserControl x:Class="Sym.VisualStudioExtension.Engines.CalcEngineView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="clr-namespace:Sym.Engines.Calculation.Builder.Domain;assembly=Sym.Engines.Calculation"
xmlns:core="clr-namespace:Sym.Core.Domain;assembly=Sym.Core"
xmlns:helper="clr-namespace:Sym.VisualStudioExtension.Helper_Classes"
xmlns:local="clr-namespace:Sym.VisualStudioExtension"
local:ViewModelLocator.AutoWireViewModel="True"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="400">
<UserControl.Resources>
<ContextMenu>
...
</ContextMenu>
</UserControl.Resources>
<Grid Margin="-20,-20,-20,-20">
<Grid.RowDefinitions>
<RowDefinition Height="8*"/>
</Grid.RowDefinitions>
<TabControl x:Name="tabControl" HorizontalAlignment="Left" Height="617" Margin="20,54,0,0" VerticalAlignment="Top" Width="357">
<TabItem Header="Calculation Files">
<ListBox Name="CalcFilesListBox"
Margin="20" ItemsSource="{Binding CalcFilesList}"
ContextMenu="{StaticResource NewEditDeleteContextMenu}"
Tag="{x:Type core:CalcFile}">
...
</ListBox>
</TabItem>
<TabItem Header="Template Files" Height="22" VerticalAlignment="Top">
<TreeView ItemsSource="{Binding TemplateFamilyList}"
Margin="20"
ContextMenu="{StaticResource NewEditDeleteContextMenu}"
Tag="{x:Type domain:TemplateParameter}">
<TreeView.Resources>
...
</TreeView.Resources>
</TreeView>
</TabItem>
<TabItem Header="Advanced Calc Files">
<ListBox Margin="20"
ItemsSource="{Binding AdvancedCalcFilesList}"
ContextMenu="{StaticResource NewEditDeleteContextMenu}"
Tag="{x:Type domain:TemplateCalculation}">
...
</ListBox>
</TabItem>
</TabControl>
<Label x:Name="label" Content="{Binding Path=Title}" HorizontalAlignment="Left" Height="27" Margin="10,22,0,0" VerticalAlignment="Top" Width="367"/>
</Grid>
在我看来,在 ToolWindowPane 上有一个 Grid,在 Grid 上有另一个 Grid,在那个 Grid 上有一个 Tabcontrol。来自 this post似乎有些控件没有调整大小。那么这是否意味着 TabControl 即使在 Grid 上也无法调整大小?
当用户调整 ToolWindowPane 大小时,内容不会调整大小。在这种情况下如何实现正确的大小调整?
最佳答案
问题的根本在于设置了明确的宽度和高度值,并阻止了控件适合其容器。
关于c# - 调整 WPF 中 ToolWindow 和内容的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51114127/
当您处于以下情况时会出现此问题:- 在我的应用程序中有一个主窗口-我创建了另一个不在任务栏中显示的窗口,它是一个工具窗口。- 我将第二个窗口显示为对话窗口(来自主窗口)- 我切换到另一个在我的系统中运
如何在 WPF 中为 ToolWindow 添加图标? 就像 最佳答案 我知道这已经过时了,但我现在遇到了同样的问题,我决定提供一个解决方案。 您不能将图标与 WindowStyle“ToolWin
我正在开发一个 IntelliJ 插件,它有自己的工具窗口。当用户按下某个键时,该插件应调用 IntelliJ 的内置重命名重构函数来重命名变量。当我运行示例时,当我按下某个键调用重命名重构函数时,会
我们有一个 VS 扩展。用户使用 ToolWindowPane 与扩展进行交互。 ToolWindowPane 的高度和宽度取决于用户如何设置他们的 VS 环境,目前 ToolWindowPane 的
当我在不同的 intellij 窗口中打开多个 (3-4) 项目时,我的 JSON 插件工具窗口显示为空白。这是我的 plugin.xml com.xxxxx.json.Editor JSO
我有一个 wpf 用户控件,它接受输入手势来执行各种命令。在下面的示例图像中,用户可以按 Ctrl+N 来执行 New在 TreeView 中创建新项目的命令. 当此用户控件托管在 WPF 应用程序中
我是一名优秀的程序员,十分优秀!