おそらく長い話ですが、私は本当にそれを解決する考えがありません.
ある企業は、食品、飲料、その他の 3 つのカテゴリの製品を製造しており、各カテゴリの下には複数の製品があります。たとえば、食品カテゴリには、チョコレート、ビスケットの製品があります。飲み物のカテゴリーには、牛乳、お茶、コーラの製品があります。他のカテゴリには、本、時計などの製品があります。
しかし、ある時期には、その会社は異なるカテゴリーから最大で 3 種類の製品を製造しています。たとえば、1 月に同社はチョコレート、紅茶、時計を製造しました。2月にはコーラと本を生産しました。
class ProductBase
{
protected ProductBase(string name, double price)
{
Name = name;
Price = price;
}
public int Type { get; protected set; }
public string Name { get; private set; }
public double Price { get; private set; }
}
class Food : ProductBase
{
protected Food(string name, double price)
: base(name,price)
{ Type = 1; }
public bool IsFried { get; set; }
}
class Drink : ProductBase
{
protected Drink(string name, double price)
: base(name,price)
{ Type = 2; }
public bool IsLowFat { get; set; }
}
class Other : ProductBase
{
protected Other(string name, double price)
: base(name,price)
{ Type = 3; }
}
次に、製品を表示する必要があります。便宜上、食べ物は常に最初の場所、飲み物は 2 番目、その他は 3 番目の場所に配置する必要があります。さらに、食品がなくても、その場所に飲み物やその他の製品を入れることはできません。
こちらは全3品。LF は、緑茶が低脂肪であることを示します。
商品が 2 つしかない場合は、このように表示されます。
各行の幅と高さは同じでなければなりません。IsLowFat/IsFried は 1 列目にあり、Name は 2 列目にあり、Price は 3 列目にあります。2 番目の列の幅は、コンテナーの使用可能な幅に合わせて変更できます。
上記のデモでは、このコードを使用していますが、非常に見苦しく、ウィンドウ サイズに応じて FontSize が光りません。ViewBox を試しましたが、処理できません。
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="190" Width="402" FontSize="30">
<UniformGrid Rows="3" >
<DockPanel>
<TextBlock Width="50" Text="" Margin="0,0,5,0" DockPanel.Dock="Left" />
<TextBlock DockPanel.Dock="Right" Text=""/>
<TextBlock TextAlignment="Left" Text=""/>
</DockPanel>
<DockPanel>
<TextBlock Width="50" Text="LF" Margin="0,0,5,0" DockPanel.Dock="Left" />
<TextBlock DockPanel.Dock="Right" Text="$2"/>
<TextBlock TextAlignment="Left" Text="Green Tea"/>
</DockPanel>
<DockPanel>
<TextBlock Width="50" Text="" Margin="0,0,5,0" DockPanel.Dock="Left" />
<TextBlock DockPanel.Dock="Right" Text="$7"/>
<TextBlock TextAlignment="Left" Text="Beautiful Clock"/>
</DockPanel>
</UniformGrid>
</Window>
それで、あなたの提案は何ですか?私の要件を満たす最善の方法は何ですか? どんな洞察も高く評価されます。