簡體   English   中英

如何在WP8中更改背景顏色和列表框所選項目的textbloxk內容的顏色?

[英]How to change background color and color of textbloxk content of selected item of a listbox in WP8?

正在使用Windows Phone 8應用。 我正在使用一個列表框動態顯示列表,並且在列表框中某項的選擇更改時,我希望選定的項目背景顏色為藍色,文本塊文本顏色為白色(僅適用於選定的項目),這是我的列表框的xaml代碼

<Canvas  x:Name="Canvas_Main" Margin="23,191,27,75" Tap="Canvas_Main_Tap">
        <ListBox x:Name="Listbox_Main" Height="534" Width="430" ItemsSource="{Binding}" SelectionChanged="Listbox_Main_SelectionChanged" Tap="Listbox_Main_Tap" Canvas.Left="10"  >
            <ListBox.ItemsPanel>
                <ItemsPanelTemplate>
                    <toolkit:WrapPanel/>
                </ItemsPanelTemplate>
            </ListBox.ItemsPanel>
            <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="Padding" Value="5"/>
                </Style>
            </ListBox.ItemContainerStyle>
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Canvas x:Name="cnv_Items" Height="100" Width="200">
                        <Border Height="100" Width="200" BorderThickness="2" BorderBrush="#FFD0D0D0"/>
                        <TextBlock x:Name="Tb_Value" Text="{Binding Value}" TextWrapping="NoWrap" Foreground="Black" TextAlignment="Right" FontSize="26" Height="40" Width="195" Canvas.Top="10" Canvas.Left="2"/>
                        <TextBlock x:Name="Tb_UnitName" Text="{Binding Key}" Foreground="Black" TextAlignment="Right" FontSize="19" Height="40" Width="180" Canvas.Top="55" Canvas.Left="10"/>
                    </Canvas>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </Canvas>

其背后的代碼:

private void Listbox_Main_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (Canvas_KeyBoard.Visibility == Visibility.Visible)
                OutAnimation();
            if (Listbox_Main.SelectedItem != null)
            {
                myitem = (KeyValuePair<string, string>)Listbox_Main.SelectedItem;
                ListBoxItem myitem1 = Listbox_Main.SelectedItem as ListBoxItem;
                SolidColorBrush brush = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
                myitem1.Background = brush;
                Conversion_Logic();
            }

        }

請告訴我該怎么辦,我正在此問題上工作2天,但無法獲取解決方案。 希望你能幫助我

由於您有一個selectionchanged更改事件對於您的ListBox,您可以嘗試一下。 最好的解決方案是使用樣式和觸發器

    private void Listbox_Main_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        ListBoxItem myitem = Listbox_Main.SelectedItem as ListBoxItem;
        SolidColorBrush brush =  new SolidColorBrush(Color.FromArgb(255,255,0,0));
        myitem.Background = brush;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM