小编Mar*_*tin的帖子

这些WCF服务引用文件是什么

在Visual Studio 2008中添加WCF服务引用时,将创建名为Service Reference\ServiceReferenceNamespace的目录.

在此目录中,有名为Service.xsd,Service1.xsd,Service2.xsd,Service3.xsd和Service4.xsd的文件.这些文件不是重复的 - 不同的文件定义了不同的类型和元素.当我第一次创建服务引用时,只有一个文件,但是当我添加了更多DataContract和OperationContracts时,添加了更多Service*文件.

生成5个不同的文件而不仅仅是一个文件看起来有点奇怪.如果我删除服务引用(以及目录)然后再次添加它,则会再次添加相同的文件.

任何人都可以解释为什么创建几个文件而不只是一个?

wcf file service-reference visual-studio-2008 visual-studio

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

WPF字体缩放

我有一个WPF应用程序,其中应缩放用户界面,以便在窗口变大时它应该变大.在其中一个对话框中,我需要向用户显示项目列表,用户应单击其中一个.该列表将包含1到15-20个项目.我希望每个项目的字体大小与列表中其他项目的字体大小一样大,但同时我希望在窗口变大时字体大小增加.

目前,我的测试代码如下所示.

<Window x:Class="WpfApplication4.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:controls="clr-namespace:WpfApplication4"
    Title="Window1" Height="480" Width="640">


    <ScrollViewer>

        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="30*" MinHeight="30"/>
                <RowDefinition Height="30*" MinHeight="30"/>
                <RowDefinition Height="30*" MinHeight="30"/>
            </Grid.RowDefinitions>

            <Button Grid.Row="0" MaxHeight="100"><Viewbox><TextBlock>T</TextBlock></Viewbox></Button>
            <Button Grid.Row="1" MaxHeight="100"><Viewbox><TextBlock>Test</TextBlock></Viewbox></Button>
            <Button Grid.Row="2" MaxHeight="100"><Viewbox><TextBlock>Test Longer String</TextBlock></Viewbox></Button>

        </Grid>

    </ScrollViewer>

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

如果应用程序启动并且窗口变宽,则一切看起来都正常.如果窗口宽度减小时,文本的字体大小Test Longer String变小,但的字体大小TTest保持相同.我明白为什么会发生这种情况 - 视图框会将内容缩放到最大尺寸.我想知道的是我应该用什么方法来解决这个问题.

我不想给控件特定的字体大小,因为有些人会在640x480这样的低分辨率屏幕上运行它,而其他人会使用更大的宽屏.

编辑:

我试图将我的代码修改为以下内容:

<ScrollViewer>
    <Viewbox>
        <ItemsControl>
            <Button>Test 2</Button>
            <Button>Test 3</Button>
            <Button>Test 4 afdsfdsa fds afdsaf</Button>
            <Button>Test 5</Button>
            <Button>Test 5</Button>
            <Button>Test 5</Button>
            <Button>Test 5</Button>
            <Button>Test 5</Button>
        </ItemsControl>
    </Viewbox>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

但随着按钮边框的大小也增加,因此在大屏幕上,按钮边框变为厘米宽.

wpf user-interface scaling font-size

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

始终使用自定义数据类型

我想知道(几乎)总是在C#中使用自定义数据类型而不是依赖于内置类型(如System.Int32和System.String)是疯狂的.

例如,要表示人名,想法是使用名为PersonFirstName而不是System.String的数据类型(当然,PersonFirstName数据类型必须包含System.String).另一个示例是具有PersonID类,该类表示人员的数据库标识符,而不是具有System.Int32.

这里会有一些好处:

  • 今天,如果函数将int作为参数,则很容易传入Company对象的ID而不是Person对象的ID,因为两者都是int类型.如果函数采用了CompanyID,如果我尝试传入PersonID,我会收到编译错误.

  • 如果我想将数据库列数据类型从int更改为Person的uniqueidentifier,我只需要在PersonID类中进行更改.今天,我必须在所有需要Int并且应该代表公司的地方进行更改.

  • 在正确的位置实施验证可能更容易.""可能永远不是一个正确的名字,PersonFirstName可以照顾它.

是的,我必须编写更多的构造函数.我可以在这些中实现隐式重载,以使它们易于使用.

这是疯了吗?

c# types

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