WPF新建项问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF新建项问题?相关的知识,希望对你有一定的参考价值。

我在wpf应用程序里新建了个类库,为什么在该类库下不能新建wpf的东西?比如自定义控件,资源词典等等。新建项里没有这些!请高手解答。

如果你要创建自定义控件,资源词典等等的,应该将它们放在WPFapplication下面啊。类库一般只放cs文件的。 参考技术A 你应该新建WpfCustomControlLibrary类型的项目,它和ClassLibrary有一定区别。追问

有WpfCustomControlLibrary吗?怎么创建

唉 ,还是创建wpfApplication把

有WpfCustomControlLibrary吗?怎么创建

唉 ,还是创建wpfApplication把

追答

怎么没有啊,和ClassLibrary是平行的。

参考技术B 左侧已安装模板选WPF,只能新建用户控件。 参考技术C 你应该新建的是资源字典吧

C# WPF - 选定项文本被剪切

【中文标题】C# WPF - 选定项文本被剪切【英文标题】:C# WPF - Selected Item text is cut 【发布时间】:2021-09-12 11:34:19 【问题描述】:

ComboBox 的 SelectedItem 中的文本被剪切。 在示例中“手动加载”---->>“手动加载” 我尝试在模板中设置 Margin=0 和 Padding=0 (如本主题“https://***.com/questions/48291742/c-sharp-wpf-combobox-selected-item-text-cut-off ") 但没有任何效果

我的组合框

<ComboBox x:Name="cmbLoad" Padding="5,0,0,0" Grid.Column="1" ItemTemplate="StaticResource ResourceKey=Id_Name_Template" SelectionChanged="Cmb_Load_SelectionChanged" HorizontalAlignment="Stretch" HorizontalContentAlignment="Left"/>

我的模板

<DataTemplate  x:Key="Id_Name_Template" >
            <StackPanel >
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition />
                        <ColumnDefinition />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <TextBlock Grid.Column="0" Margin="0" Padding="0" VerticalAlignment="Center">
                        <Run FontWeight="Bold" Text="Binding Id"/>
                    </TextBlock >
                    <TextBlock Grid.Column="1" Text="-"  Margin="5,0,5,0"  Padding="0"/>
                    <TextBlock Grid.Column="2" Margin="0" Padding="0" VerticalAlignment="Center" FontStyle="Italic" Text="Binding Name" />
                </Grid>
            </StackPanel>
        </DataTemplate>

结果

【问题讨论】:

【参考方案1】:

去掉StackPanel,设置ColumnDefinitionsWidth

<DataTemplate  x:Key="Id_Name_Template" >
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <TextBlock Grid.Column="0" Margin="0" Padding="0" VerticalAlignment="Center">
             <Run FontWeight="Bold" Text="Binding Id"/>
        </TextBlock >
        <TextBlock Grid.Column="1" Text="-"  Margin="5,0,5,0"  Padding="0"/>
        <TextBlock Grid.Column="2" Margin="0" Padding="0" VerticalAlignment="Center" FontStyle="Italic" Text="Binding Name" />
    </Grid>
</DataTemplate>

【讨论】:

“摆脱 StackPanel” 解决了我 90% 的 WPF 格式问题。【参考方案2】:

您可以改用StackPanel

<DataTemplate  x:Key="Id_Name_Template" >
    <StackPanel Orientation="Horizotnal">
        <TextBlock Text="Binding Id" FontWeight="Bold"/>
        <TextBlock Text=" - "/>
        <TextBlock Text="Binding Name" FontStyle="Italic"/>
    </StackPanel>
</DataTemplate>

或者只是 Runs 在 TextBox 本身:

<DataTemplate x:Key="Id_Name_Template" >
     <TextBlock VerticalAlignment="Center">
          <Run Text="Binding Id" FontWeight="Bold"/><Run Text=" - "/><Run Text="Binding Name" FontStyle="Italic"/>
     </TextBlock>
</DataTemplate>

【讨论】:

以上是关于WPF新建项问题?的主要内容,如果未能解决你的问题,请参考以下文章

VS项目种类GUID

c#新建WPF后没有设计器,但是程序可以运行?

wpf我在第一个窗体后新建了一个窗体,要怎么弄才能使程序运行时先显示我新建的那个窗体?

新建WPF应用程序 使用DevExpress 控件 如何修改控件皮肤?

创建WPF用户控件

怎么新建一个窗口,并且在这个新建窗口下设置一个按钮,当我点击一下按钮就会出现我已经做好的WPF界面?