gpt4 book ai didi

c# - 相对于元素存储数据字符串的最佳方式

转载 作者:行者123 更新时间:2023-11-30 18:28:08 25 4
gpt4 key购买 nike

在元素内存储数据的最佳、最可能、正确方法是什么?

我以前使用单独的 XML 文件,现在我使用 Tagtooltip 属性。

是字符串类型的数据,例如:

主题数据 Theme1.fg.ffffffff;Theme2.fg.ff000000;

边距根据窗口大小 Margin.16:9.10,5,10,5;

最佳答案

使用 WPF/XAML 的理想方法是将此类字符串存储在相应元素的 ResourcesResourceDictionary

例如

<Grid x:Name="myGrid" xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Grid.Resources>
<sys:String x:Key="ThemeData">Theme1.fg.ffffffff;Theme2.fg.ff000000;</sys:String>
<sys:String x:Key="Margins">Margin.16:9.10,5,10,5;</sys:String>
</Grid.Resources>
</Grid>

要使用相同的方法,您有两种方法

xaml 方法

<TextBlock Text="{StaticResource ThemeData}" />

代码隐藏

string themeData = myGrid.FindResource("ThemeData");

这些资源也可以存储在一个 ResourceDictionary 中,它可以进一步合并到任何元素、窗口甚至整个应用程序中

例如

字符串资源.xaml

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<sys:String x:Key="ThemeData">Theme1.fg.ffffffff;Theme2.fg.ff000000;</sys:String>
<sys:String x:Key="Margins">Margin.16:9.10,5,10,5;</sys:String>
</ResourceDictionary>

用法

<Grid x:Name="myGrid">
<Grid.Resources>
<ResourceDictionary Source="StringResources.xaml" />
</Grid.Resources>
<TextBlock Text="{StaticResource ThemeData}" />
</Grid>

或者这个,如果你想合并/覆盖更多的资源

<Grid x:Name="myGrid">
<Grid.Resources>
<ResourceDictionary xmlns:sys="clr-namespace:System;assembly=mscorlib">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="StringResources.xaml" />
</ResourceDictionary.MergedDictionaries>
<!--define new resource or even override existing for this specific element -->
<sys:String x:Key="ThemeData">Theme1.fg.ff00ff00;Theme2.fg.ff0000ff;</sys:String>
<sys:String x:Key="NewMargins">Margin.16:9.10,5,10,5;</sys:String>
</ResourceDictionary>
</Grid.Resources>
<TextBlock Text="{StaticResource ThemeData}" />
</Grid>

关于c# - 相对于元素存储数据字符串的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25585050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com