在XAML中构建平铺

时间:2015-11-22 02:50:46

标签: c# windows xaml windows-10 uwp

我正在尝试通过XAML添加一个磁贴。我最终想要添加文本到瓷砖,例如新闻文章(所以我的mainpage.xaml中每个瓷砖的新闻文章)。任何人都可以给我一个例子或给我一个代码片段,告诉我如何实现这一目标?我将发布我想要完成的截图....

enter image description here

这是我在网上找到的代码片段,但看起来像是用于Windows 8开发?

from tkinter import *
import pyaudio
import wave
import sys

root = Tk()
root.title("Compose-O-Matic")
root.geometry("400x300")

def play_audio():
    chunk = 1024
    wf = wave.open('misc_environment3.wav', 'rb')
    p = pyaudio.PyAudio()

    stream = p.open(
        format = p.get_format_from_width(wf.getsampwidth()),
        channels = wf.getnchannels(),
        rate = wf.getframerate(),
        output = True)

    data = wf.readframes(chunk)

    while data != '':
        stream.write(data)
        data = wf.readframes(chunk)

    stream.stop_stream()
    stream.close()
    p.terminate()

app = Frame(root)
app.grid()

button_start = Button(app, text = ">", command = play_audio)
button_start.grid()

root.mainloop()

注意:这是通用Windows应用程序

1 个答案:

答案 0 :(得分:3)

看看xaml中的GridView(存在于W8和UWP中) https://msdn.microsoft.com/nl-nl/library/windows/apps/windows.ui.xaml.controls.gridview.aspx

您可以定义java -jar <yourjar> <yourMainClass> ,使其看起来像您的图块。

一个例子,包含一些硬编码项目:

ItemContainterStyle

这看起来像是:

enter image description here

如果要将ItemsSource绑定到VM,可以这样做。 假设您的VM中存在属性<GridView Width="800" Height="300"> <GridView.ItemsPanel> <ItemsPanelTemplate> <ItemsWrapGrid Orientation="Vertical" /> </ItemsPanelTemplate> </GridView.ItemsPanel> <GridView.ItemContainerStyle> <Style TargetType="GridViewItem"> <Style.Setters> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Grid Background="Gray" Margin="5" Height="100" Width="100"> <ContentPresenter /> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style.Setters> </Style> </GridView.ItemContainerStyle> <GridViewItem> Item1 </GridViewItem> <GridViewItem> Item2 </GridViewItem> <GridViewItem> Item3 </GridViewItem> <GridViewItem> Item4 </GridViewItem> <GridViewItem> Item5 </GridViewItem> <GridViewItem> Item6 </GridViewItem> <GridViewItem> Item7 </GridViewItem> <GridViewItem> Item8 </GridViewItem> </GridView>

public ObservableCollection<string> Items {get;set;}替换为<GridView Width="800" Height="300">